正在学习java,遇见了一个作业思考良久不得知,望众位帮忙~题目如下:
把一个文本文件中的每一行倒过来放到另一个文件中。比如,第一个文件第一行是abc,第二行是234,那么新文件就应该是第一行cba,第二行432。
我不知道怎么识别行啊,难道是用回车的“/n”来么?想不懂到底怎么编~
最好能把程序中主要的部分写一下,光写用什么类我还是不太会用~不要嘲笑,谢谢~
把一个文本文件中的每一行倒过来放到另一个文件中。比如,第一个文件第一行是abc,第二行是234,那么新文件就应该是第一行cba,第二行432。
我不知道怎么识别行啊,难道是用回车的“/n”来么?想不懂到底怎么编~
最好能把程序中主要的部分写一下,光写用什么类我还是不太会用~不要嘲笑,谢谢~
BufferedReader reader=new BufferedReader(new FileReader("filename"));
BufferedWriter writer=new BufferedWriter(new FileWriter("destFile"));
String line=reader.readLine();
while(line!=null){
StringBuilder b=new StringBuilder(line);
writer.write(b.reverse().toString()+"\n");
}
writer.flush();
writer.close();
reader.close();
}
//从e:\test.txt读入,套接一个BufferedReader,这个类的方法readLine()可以一行一行的读BufferedWriter wr =new BufferedWriter(new FileWriter("e:\testxxx.txt"));
//写入e:\testxxx.txt里面,BufferedWriter这个方法可以一行一行的写String s = readLine();//返回String 读取了一行
wr.write(s);//把这行写回去
wr.newLine()//换行 写一行分隔符
/**
* 读文件
*/
public String readS(String file) {
StringBuffer sb = new StringBuffer();
try {
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line = br.readLine();
while (line != null) {
StringBuffer pp = new StringBuffer();
for (int i = line.length() - 1; i >= 0; i--) {
pp.append(line.charAt(i));
}
sb.append(pp.toString() + "\r\n");
line = br.readLine();
}
br.close();
fr.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
} /**
* 写到另一文件中
*/
public boolean writeS(String path, String templateContent) { try {
// 建立文件输出流
FileOutputStream fileoutputstream = new FileOutputStream(path);
byte tag_bytes[] = templateContent.getBytes();
fileoutputstream.write(tag_bytes);
fileoutputstream.close();
return true;
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return false;
} public static void main(String[] args) {
TestIO ti = new TestIO();
String templateContent = ti.readS("c:aa.txt");
boolean b = ti.writeS("c:bb.txt", templateContent);
System.out.println(b); }}