【问题描述】对于一个文本文件text1.dat,编写一个程序,将该文件中的每一行字符颠倒顺序后输出到另一个文件text2.dat中。
【输入文件】输入文件为当前目录下的text1.dat,该文件含有多行任意字符,也可能有空行。每个文本行最长不超过80个字符。在最后一行的结尾也有一个回车符。
【输出文件】输出文件为当前目录下的text2.dat。
【样例输入】设输入文件text1.dat为:
This is a test!
Hello, world!
How are you?
【样例输出】输出文件text2.dat为:
!tset a si sihT
!dlrow ,olleH
?uoy era woH
【样例说明】将输入文件反序输出。
参考代码一(使用StringBuilder里面的reverse方法):
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader ifile = new BufferedReader(new FileReader("text1.dat"));
BufferedWriter ofile = new BufferedWriter(new FileWriter("text2.dat"));
Scanner sc = new Scanner(System.in);
String s;
while((s=ifile.readLine())!=null) {
StringBuilder str = new StringBuilder(s);
str = str.reverse();
String result = str.toString();
ofile.write(result);
ofile.newLine();
}
ofile.close();
ifile.close();
sc.close();
}
}
参考代码二:
import java.io.*;
import java.util.Scanner;
public class Main
{
public static void main(String[] args) throws IOException {
Scanner sc = new Scanner(System.in);
BufferedReader ifile = new BufferedReader(new FileReader("text1.dat"));
BufferedWriter ofile = new BufferedWriter(new FileWriter("text2.dat"));
String str;
while((str = ifile.readLine())!=null) {
for(int i=str.length()-1;i>=0;i--) {
ofile.write(str.charAt(i));
}
ofile.newLine();
}
ofile.close();
ifile.close();
sc.close();
}
}