扫描文本文件

时间:2015-06-14 16:11:37

标签: java java.util.scanner

这可能是一个简单的问题。我在扫描文本文件时遇到问题。我想扫描一个文本文件并在JOptionPane中显示该消息。它扫描但它只显示我的文本文件的第一行,然后停止忽略其他行。如果我能得到一点帮助。非常感谢你!这是我的代码:

File file = new File("src//mytxt.txt");
           try{
               Scanner input = new Scanner(file);
               while(input.hasNext()){
                   String line = input.nextLine();
                   JOptionPane.showMessageDialog(null, line);
                   return;        
               }
               input.close();
           }
           catch (FileNotFoundException ex) {
               JOptionPane.showMessageDialog(null, "File not found");
           }
        }

3 个答案:

答案 0 :(得分:5)

如果您希望整个文件显示在一个JOptionPane中,请为其创建StringBuilder,将每行添加到该文件然后显示。

File file = new File("src//mytxt.txt");
try {
    Scanner input = new Scanner(file);
    StringBuilder op = new StringBuiler();
    while (input.hasNext()) {
        op.append(input.nextLine());
    }
    JOptionPane.showMessageDialog(null, op.toString());
    input.close();
}
catch (FileNotFoundException ex) {
    JOptionPane.showMessageDialog(null, "File not found");
}

答案 1 :(得分:0)

现在,您只在JOptionPane中显示一行。您必须先生成message,然后再将其显示到JOptionPane -

   File file = new File("src//mytxt.txt");
   String message = "";
   try{
       Scanner input = new Scanner(file);
       while(input.hasNext()){
           String line = input.nextLine();
           message = message+line;       
       }
       JOptionPane.showMessageDialog(null, line);
   }
   catch (FileNotFoundException ex) {
       JOptionPane.showMessageDialog(null, "File not found");
   }finally{
      input.close();
   }
}

答案 2 :(得分:0)

使用 while (input.hasNext()) { // scan并将每行附加到String variable

}`

scan文件中的每一行,并将整个文本保存在String变量中。 然后使用JOptionPane.showMessageDialog(null,op)在单个JOptionPane中显示整个文本。