String userInput = stdin.nextLine();
file = new File(userInput);
Scanner fileScanner = new Scanner(file);
while(fileScanner.hasNext()) {
fileContents = fileScanner.nextLine();
}
所以我试图找出如何让我的变量fileContents
来保存扫描仪中的所有文件。使用当前的方式我设置变量fileContents
只剩下.txt文件的最后一行。对于我正在做的事情,我需要它来保存文件中的整个文本。空间,字符和所有。
我确信有一个简单的解决方法,我只是java /编码的新手。
答案 0 :(得分:0)
您需要更改
fileContents += fileScanner.nextLine();
或
fileContents =fileContents + fileScanner.nextLine();
使用您的方法,您将重新分配fileContents
值,而不需要连接下一行。
答案 1 :(得分:0)
String userInput = stdin.nextLine();
file = new File(userInput);
StringBuilder sb = new StringBuilder();
Scanner fileScanner = new Scanner(file);
while(fileScanner.hasNext()) {
sb.append(fileScanner.nextLine()+"\n");
}
System.out.println(sb.toString());
或者按照@ singhakash的回答,因为我认为他的表现更快。但是我使用了一个StringBuilder来让你知道你正在追加'换句话说,只需添加您想要使用的数据。按照您的方式,您将获得文本的最后一行,因为它会一直覆盖以前的数据。
答案 2 :(得分:0)
你也可以在下面使用:
Scanner sc = new Scanner(new File("C:/abc.txt"));
String fileContents = sc.useDelimiter("\\A").next();
在这种情况下,您不必使用while循环。