Содержимое моего текстового файла не отображается при запуске программы - PullRequest
0 голосов
/ 25 января 2020

Я пытаюсь прочитать содержимое текстового файла и распечатать его. Я не могу понять, почему содержимое не отображается при запуске программы.
Это мой код:

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  

Ответы [ 2 ]

0 голосов
/ 25 января 2020

Сначала несколько вещей, которые вы не хотите l oop, пока файл существует, а затем используйте system.exit, если вам действительно нужно просто использовать оператор if

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

Во-вторых, вы захотите используйте file.hasNextLine () вместо hasNext, а также где находятся фигурные скобки для вашего l oop. Вот как это должно выглядеть. ну, вы не можете сделать это за пределами l oop, поэтому вместо всей этой ерунды создайте массив String и сохраните в нем каждую строку, когда вы получите разные значения. Предполагая, что ваши данные расположены на отдельных строках, они должны выглядеть примерно так:

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

И, наконец, для отображения их на нескольких строках вы должны использовать простой расширенный l oop.

for(String i : peices) {
   System.out.println(i);
}
0 голосов
/ 25 января 2020

ваше время l oop не работает. поэтому данные следующей строки не поступают в строковый объект. и если вы хотите получить все данные вашего текстового файла в одну строку, попробуйте ниже l oop.

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

      System.out.printf(line );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...