日期:2014-05-20 浏览次数:21045 次
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,没时间去看。楼主自己看看。