java—当我运行程序时,文本文件的内容不显示

6qfn3psc  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(418)

我试图读取文本文件的内容并打印出来。我不明白为什么在运行程序时不显示内容。
这是我的密码:

import java.io.*;
import java.util.Scanner;

public class ReadTxtfile{

  public static void main (String [] args) throws IOException{

    Scanner input = new Scanner(System.in);

    //Open the file
    File file = new File("chessfile.txt");

    //Open files for reading
    Scanner inputFile = new Scanner(file);
    while(!file.exists()){
      System.out.println("The file chessfile.txt is not found.");
      System.exit(0);
    }

    //Read lines from the file
    while(inputFile.hasNext());

    //Read next
    String piece = inputFile.nextLine();
    String color = inputFile.nextLine();
    String column = inputFile.nextLine();
    String row = inputFile.nextLine();

    //Display File
    System.out.printf(piece, color, column, row);

    //Close file
    inputFile.close();
  }

}//End of main
rdlzhqv9

rdlzhqv91#

你的while循环不工作。所以下一行数据不是来自字符串对象。如果你想在一行中获得所有的文本文件数据,可以试试下面的循环。

String line ="";
      while(scanner.hasNextLine())
        line += scanner.nextLine();

      System.out.printf(line );
8yoxcaq7

8yoxcaq72#

有几件事首先你不想在文件存在时循环,然后如果你真的需要使用if语句就使用system.exit

if(!file.exists()){
   System.out.println("The file chessfile.txt is not found.");
   System.exit(0);
}

其次,你要使用file.hasnextline()而不是hasnext,循环的花括号应该是什么样子的。

while(inputFile.hasNextLine()){
       String piece = inputFile.nextLine();
       String color = inputFile.nextLine();
       String column = inputFile.nextLine();
       String row = inputFile.nextLine();
   }

最后,我猜printf试图很好地显示它们,但你不能在循环之外这样做,所以不要做那些无稽之谈,而是创建一个字符串数组,当你得到不同的值时,存储其中的每一行。假设您的数据在不同的行上,它应该看起来像这样。

ArrayList<String> peices = new ArrayList<String>();

     while(inputFile.hasNextLine()){
         String peice = "";
         peice += inputFile.nextLine() + " ";
         peice += inputFile.nextLine() + " ";
         peice += inputFile.nextLine() + " ";
         peice += inputFile.nextLine() + " ";
         peices.add(peice);
     }

最后,要在多行上显示它们,应该使用一个简单的增强循环。

for(String i : peices) {
   System.out.println(i);
}

相关问题