打印文本文件的字符串

时间:2016-03-16 20:39:03

标签: java string while-loop try-catch java.util.scanner

在这种情况下,如何打印文件中的单词。 我的程序当前从一个名为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();
    }
  }
}

1 个答案:

答案 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 );
     }

 }

此方法的好处是您只需要读取一次文件。