Вывести массив ввода / вывода txt в обратном порядке, используя a для l oop и l oop наверх в java - PullRequest
0 голосов
/ 25 апреля 2020

Я делаю ввод / вывод для печати текстового файла. Моя цель - прочитать текст, а затем вывести текстовый файл в обратном порядке (Пример 1, 2, 3, 4> 4, 3, 2, 1). У меня есть массив вниз и для l oop вниз, но я не могу получить массив txt для печати в обратном порядке? Это дает мне сообщение об ошибке, строка не найдена? Я думаю, мне нужно, чтобы вернуться к началу текста, чтобы прочитать, но я не уверен, как? Заранее благодарю за любую помощь!


СООБЩЕНИЕ ОБ ОШИБКЕ: Исключение в потоке "main" java .util.NoSuchElementException: На java .base / java .util не найдено ни одной строки. Scanner.nextLine (Scanner. java: 1651)


КОД НИЖЕ:

publi c назначение класса {

publi c stati c void main (String [] args) {

  String inputFileName = "SadMachineLyrics.txt";


  File inputLyricsFH = new File(inputFileName);


  String outputFileName = "outputAssignment13";


  File outFH = new File(outputFileName);



  try {


     Scanner reader = new Scanner(inputLyricsFH);


     String line = "";

     FileWriter outFW = new FileWriter(outFH, false);

     int countLines = 0;
     while (reader.hasNextLine()) {
        line = reader.nextLine();
        countLines++;
     }

     System.out.println("The text file has " + countLines + " lines.");


     String[] lyrics = new String[countLines];


     for (int i = lyrics.length - 1; i >= 0; i--) {
        System.out.println(lyrics[i] + "");  
     }



     line = reader.nextLine();
     System.out.println("The first line of text is: " + line);


     outFW.close();


     System.out.println("Program done");
     }

  catch (IOException ioe) {
     System.out.println("ERROR: Couldn't write to the file!");
  }

}}

...