用其反向替换文件行的程序

时间:2016-03-01 03:32:29

标签: arraylist io reverse filenotfoundexception printwriter

我正在编写一个算法,该算法采用带有文本的IO输入文件,读取它处理它然后输出一个带有反向文本的文件。 例如:

  

Hello word

将是

  卓尔olleH。

程序编译但文件夹“text_Output”为空。????

有些见解?

import java.util.*;
import java.io.*;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.io.PrintWriter;
import java.io.File;


public class Reverse
{
  public static void main(String[] args) throws FileNotFoundException  { 

    //read file from user 
    Scanner Input = new Scanner (new File("text_input.txt")) ;
    //  declar arraylist
    ArrayList <String> Lines = new ArrayList <String>();

    //use while loop to copy by line all data from text to array list
    while (Input.hasNextLine())
    {
      //add line to array list
      Lines.add(Input.nextLine());
    }
    Input.close();

    // create new output file
    PrintWriter Output = new PrintWriter(new File("text_Output"));

    //copy data from lines arraylists to new text file
    for (int i =0; i < Lines.size();i++)
    {
      //copy first element into char array
      char[]strLine = Lines.get(i).toString().toCharArray();

      //copy each char to string array in new text file
      for(int j=strLine.length-1;j>=0;j--)
      {   
        //copy index char in file
        Output.print(strLine[j]);
        Output.println();
      } 
      //close the files
      Input.close();
      Output.close ();
    }
  }
}

1 个答案:

答案 0 :(得分:1)

在写入的for循环中,它只读取第一行,然后输入和输出关闭。我尝试使用多行输入数据,并且可以正常使用下面提到的代码。

     for (int i =0; i < Lines.size();i++)
        {
          //copy first element into char array
          char[]strLine = Lines.get(i).toString().toCharArray();

          //copy each char to string array in new text file
          for(int j=strLine.length-1;j>=0;j--)
          {   
            //copy index char in file
            Output.print(strLine[j]);

          } 
          Output.println();
        }
// here close the input and output.
}
}