public static void main(String ar[]) throws FileNotFoundException{
scan = new Scanner(new FileReader(new File("files.txt")));
String nextLine = scan.nextLine();
String[] fileNames = nextLine.split("\\s+");
for(int i=0;i<fileNames.length;i++){
System.out.println(fileNames[i]);
}
for(int i=0;i<nextLine.length();i++){
char c = nextLine.charAt(i);
boolean isWhiteSpace = isWhiteSpace(c);
if(isWhiteSpace){
if(c == ' ')
System.out.println("white space (blank) at index "+i);
if(c == '\n')
System.out.println("white space (line feed) at index "+i);
if(c == '\r')
System.out.println("white space (\\r - carriage return) at index "+i);
if(c == '\t')
System.out.println("white space (\\t - tab) at index "+i);
}
}
}
我需要帮助来解决这个问题。显然我的程序只识别文件中的第一行,当它应该读取内容的整个文件时。
我需要做些什么改变?谢谢。
答案 0 :(得分:3)
嗯,这是因为您只从文件中读取一行:
scan = new Scanner(new FileReader(new File("files.txt")));
String nextLine = scan.nextLine();
要读取整个文件,您必须调用scan.nextLine(),直到到达文件末尾。要检查文件结尾,可以执行while循环,然后遍历整个文件:
Scanner input = new Scanner(new File("\""+filename+"\""));
while(input.hasNextLine())
{
String data = input.nextLine();
//Do what you want with one line which is at each iteration stored in data
}
答案 1 :(得分:0)
您似乎只使用String nextLine = scan.nextLine();
一次!
答案 2 :(得分:0)
String nextLine = scan.nextLine();
在我看来,只接受文件中的一行,使用您的扫描仪&#34;扫描&#34;。因此,您只能从相关文件中获取一行。
答案 3 :(得分:0)
您只调用方法nextLine()
一次,因此您只能在程序中读取1行。您必须添加for循环以继续阅读所有可用行。