我正在开发一个Java程序,在该程序中,我必须读取文件的内容,然后以相反的方式打印每行。例如文字:

Public Class Helloprinter
Public static void


在运行我的反向程序后将打印以下内容:

retnirPolleh ssalc cilbup
diov citats cilbup


这是到目前为止我得到的:

public static void main(String[] args) throws FileNotFoundException {
     // Prompt for the input and output file names
      ArrayList<String> list = new ArrayList<String>();
      //String reverse = "";
      Scanner console = new Scanner(System.in);
      System.out.print("Input file: ");
      String inputFileName = console.next();
      System.out.print("Output file: ");
      String outputFileName = console.next();


      // Construct the Scanner and PrintWriter objects for reading and writing

      File inputFile = new File(inputFileName);
      Scanner in = new Scanner(inputFile);
      PrintWriter out = new PrintWriter(outputFileName);
      String aString = "";

      while(in.hasNextLine())
      {
          String line = in.nextLine();
          list.add(line);
      }

      in.close();

      for(int i = 0; i <list.size(); i++)
      {
          aString = list.get(i);
          aString = new StringBuffer(aString).reverse().toString();
          out.printf("%s", " " + aString);
      }

      out.close();

}


}
编辑:

罗伯特(Robert)发布后,这帮助我朝着正确的方向前进。问题在于,它不能保持一致。

Public Class Helloprinter
Public static void


在运行我的程序后变为:

retnirPolleh ssalc cilbup diov citats cilbup


它需要保持线路布局相同。所以应该是:

retnirPolleh ssalc cilbup
diov citats cilbup

最佳答案

你的问题就在这里

      out.printf("%s", " " + aString);


这不会输出换行符。我也不确定为什么您要在其中留一个空格。

应该是:

      out.println( aString );


要么

      out.printf("%s%n", aString);

09-12 04:42