在这种情况下,如何打印文件中的单词。 我的程序当前从一个名为input的文件中获取输入,其中包含单词“one two three four galumph”。截至目前,它将每个单词列在一个单独的行上,一旦它到达“galumph”就会终止,这就是我想要的,但我也希望它能在任何事情之前显示文件中的所有元素。我该怎么办?我在一开始就试着做一个while循环,但是得到了错误。有什么建议吗?
import java.io.*;
import java.util.Scanner;
class EchoWords {
public static void main(String[] args) throws FileNotFoundException {
String word;
String line;
try {
File file = new File("input");
Scanner s2 = new Scanner(file);
while(s2.hasNext()) {
String s = s2.next();
System.out.println(s);
while(true) {
word = s2.next();
if(word.equals("galumph")) {
break;
}else{
System.out.println(word);
continue;
}
}
System.out.println("bye!");
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:1)
如果您的文件不是太大,您可以一次阅读该文件的所有行并将其存储在List
中:
String fileName = "filePath";
List<String> allLines = Files.readAllLines( Paths.get( fileName ) );
然后你可以随意迭代这些行:
//print all the lines
for ( String line : allLines )
{
System.out.println( line );
}
//print until galumph
for ( String line : allLines )
{
if ( "galumph".equals( line ) )
{
break;
}
else
{
System.out.println( line );
}
}
此方法的好处是您只需要读取一次文件。