Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JAVA:通过按键将文本文件前进到下一行_Java_Text_Keypress - Fatal编程技术网

JAVA:通过按键将文本文件前进到下一行

JAVA:通过按键将文本文件前进到下一行,java,text,keypress,Java,Text,Keypress,我正在用Java编写一个程序,在按下一个键(很可能是ENTER键)后,它将逐行推进文本。我有一个文本扫描器,它可以扫描整个文本文件。如何编写一个按键事件,使文本文件前进到下一行 这是文本扫描仪: import java.io.FileInputStream; import java.io.IOException; import java.util.Scanner; public class textReader { public static void main(String[] args

我正在用Java编写一个程序,在按下一个键(很可能是ENTER键)后,它将逐行推进文本。我有一个文本扫描器,它可以扫描整个文本文件。如何编写一个按键事件,使文本文件前进到下一行

这是文本扫描仪:

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;
public class textReader {



public static void main(String[] args) {
    
    try
    {
        FileInputStream fis = new FileInputStream("ftp.txt");
        Scanner sc = new Scanner(fis);
        
        while(sc.hasNextLine()) {
            System.out.println(sc.nextLine());
        }
        sc.close();
        }
    catch(IOException e) {
        e.printStackTrace();
    }
    }
}
编辑解决方案:


那么:

publicstaticvoidmain(字符串[]args){
扫描仪等待输入=新扫描仪(System.in);
试一试{
FileInputStream FileInputStream=新的FileInputStream(“ftp.txt”);
Scanner Scanner=新扫描仪(fileInputStream);
while(scanner.hasNextLine()){
System.out.print(scanner.nextLine());
waitinter.nextLine();//在用户点击enter键之前一直阻塞
}
scanner.close();
}捕获(IOE异常){
抛出新的RuntimeException(“检查文件是否存在?”);
}
等待enter.close();
}

您只需在while循环中添加一行,即可等待“回车”键:

while(sc.hasNextLine()) {
    System.out.println(sc.nextLine());
    System.in.read()
}

关闭扫描仪将关闭流。KeyListener不是用于命令行的东西,而是用于swing应用程序。此代码段中的异常处理很愚蠢('e.printStackTrace()'作为catch块体中的唯一条目是一个严重错误,即使它很常见。让我们停止将其永久化。不是在这里进行代码审查-soz,不是soz。在KeyListener上记录-已删除。诚然,我没有测试我的解决方案,但有足够的线索使其工作:)我现在已经根据您的反馈测试了解决方案,并更新了我的解决方案(对我有效)。考虑到这看起来更像是一个介绍性的任务,我不太担心在调用堆栈中抛出一个正确的异常并正确处理它。同样,这样的评论也不会有回报,所以我尽量少回答。谢谢Rob,这正是我想弄明白的。我做了一些工作,找到了.nextLine()方法。你似乎证实了我的发现@JordanGarrett-如果对您有效,请向上投票+标记为正确,我们都会得到分数