当前位置: 代码迷 >> J2SE >> 将一个文件中的每一行内容反转 输出到另外一个文件解决办法
  详细解决方案

将一个文件中的每一行内容反转 输出到另外一个文件解决办法

热度:141   发布时间:2016-04-24 12:28:11.0
将一个文件中的每一行内容反转 输出到另外一个文件

文件1中的内容
去我额人他一
去我而去我是

输出到另外一个文件
一他人额我去
是我去而我去

------解决方案--------------------
Java code
package csdn;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class ReverseRead {    public static void main(String[] args) {        try {            BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("test.txt")));            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("test1.txt")));            String str = "";            while ((str = br.readLine()) != null) {                                bw.write(Reverse(str) + "\n");                bw.flush();            }            br = new BufferedReader(new InputStreamReader(new FileInputStream("test1.txt")));            String s = "";            while ((s = br.readLine()) != null) {                System.out.println(s);            }            br.close();            bw.close();        } catch (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }        }        /**     * 获得逆序的字符串     * @param str      * @return str的逆序     */    private static String Reverse(String str) {        char[] c = str.toCharArray();        StringBuilder sb = new StringBuilder();        for (int i = c.length - 1; i >= 0; i--) {            sb.append(c[i] + "");        }        return sb.toString();    }}
------解决方案--------------------
1.读取文件1内容
2.将文件内容反转
3.将反转内容写入文件

假设文件一可以用字符流操作:

public static void reverse(String fileUrl) {
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(new FileInputStream(fileUrl)));
} catch (FileNotFoundException e) {
e.printStackTrace();
}

BufferedWriter bw = null;
try {
bw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(fileUrl+"_Copy")));
} catch (FileNotFoundException e) {
e.printStackTrace();
}

String lineValue = "";
try {
while ((lineValue = br.readLine()) != null) {
int length = lineValue.length();
//char[] c = new char[length];
for (int i = length-1; i >=0 ; i--) {
//c[length -i -1] = lineValue.charAt(i);
bw.write(lineValue.charAt(i));
}
bw.write("\n");
//lineValue = new String(c);
}
} catch (IOException e) {
e.printStackTrace();
}

try {
br.close();
bw.flush();
bw.close();
} catch (IOException e) {
e.printStackTrace();
}
}


功能差不多实现了。但可能有未知的BUG,没时间去看。楼主自己看看。
  相关解决方案