public static void main(String[] args) throws FileNotFoundException{
Scanner console = new Scanner(System.in);
readFile(console.next());
}
public static void readFile(String name) throws FileNotFoundException{
Scanner input = new Scanner(new File("names.txt")); // Open pipe
while(input.hasNextLine()){
String line = input.nextLine();
scanLine(line, name);
}
}
public static void scanLine(String line, String name) throws FileNotFoundException{
Scanner oneLine = new Scanner(line);
String txtName = oneLine.next();
System.out.println("txtName: " + txtName);
System.out.println("name: " + name);
}
使用第18行(打印名称); 回复:[不正确]
txtName: Delvin
name: A
txtName: Demarco
name: A
txtName: Demarcus
name: A
txtName: Demario
name: A
....
没有第18行: 回复:[正确]
txtName: A
txtName: Aaliyah
txtName: Aaron
txtName: Abagail
txtName: Abbey
txtName: Abbie
txtName: Abbigail
txtName: Abby
txtName: Abdiel
txtName: Abdul
txtName: Abdullah
txtName: Abe
txtName: Abel
....
这就是代码的流程:
readFile
被调用,我创建了一个新的Scanner
对象并传入了一个
new File
。问题:
出于某种原因,只打印name
变量(第18行)oneLine.next()似乎开始在.txt文件中间的某处开始打印。
但是,如果我不打印名称,(或根本不使用名称变量) - 它似乎完美无缺,将第一个字母A
打印到最后一个。
答案 0 :(得分:2)
问题:出于某种原因,只打印名称变量(第18行)oneLine.next()似乎开始在.txt文件中间的某处开始打印。
无论是在Windows控制台中运行还是在IDE中运行(如Eclipse),输出窗口都限制为可显示的行数。
当每行输入打印2行时,输出窗口溢出,输出的前半部分(?)被丢弃。它仍然被打印出来,在你看到之前就滚动了。