从一个文件中一行行地读取字符串,然后一行行地输出到另一个文件中。
用FileWriter类的实例如何实现回车换行?BufferedWriter的实例具有newline()方法可以实现,但是FileWriter类的实例可不可以实现写完一行字符串,换下一行重写写入。
部分代码如下
File copy = new File("copy.txt");
FileWriter fwriter = new FileWriter(copy);
...................
While((line = bufferedreader.readLine()) != null) //bufferedreader是用来从源文件中读取一行行
{
fwriter.write(line); //输出到文本中,都是连续的文本,没法区分一行行
fwriter.flush();
}
fwriter.close();
....................
------解决方案--------------------
fwriter.write(line);
fwriter.append("\r\n");
------解决方案--------------------
本来就该一个套一个的,
FileWriter 这个在底2层的,基本上就是scaffolder
看看源代码就知道。
------解决方案--------------------
line 本身没有包含换行,你需要在每次输出 line 之后再输出一个换行。
------解决方案--------------------
readLine()在取的时候是一行一行的取的,它只能当前一行的内容,而它的内容中并不存在换行,所以在输出的时候给它加上换行标识符就行了:
fwriter.write(line+"\r\n");
------解决方案--------------------
支持longtian1213的做法
不过写换行符时,建议用System.getProperty("line.separator")属性
------解决方案--------------------
你可以把读取的数据放入一个数组,然后再写入就方便点了。。
------解决方案--------------------
我觉得楼主可以用PrintWriter 的自动行刷新功能来实现。或者像楼上其他朋友说的一样,在输出后面再加个System.out.println();就可以了
------解决方案--------------------
\r\n 是windows下的换行符
\r 是Mac的
\n 是linux下的,楼主按需求定义
------解决方案--------------------
package com.gao.csdn;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
public class InOut {
public static void main(String[] args) {
// TODO Auto-generated method stub
PrintWriter pw=null;
FileOutputStream fos=null;
try {
//从文件中读取数据
FileInputStream fis=new FileInputStream("stud.txt");
//将低级流转为高级流
InputStreamReader isr=new InputStreamReader(fis);
//设置为缓冲流
BufferedReader bufferedReader=new BufferedReader(isr);
//向文件写数据
fos=new FileOutputStream("tt.txt");
OutputStreamWriter osWriter=new OutputStreamWriter(fos,"utf-8");
pw=new PrintWriter(osWriter,true);//这个true主要作用是起到换行作用
String string=null;
while((string=bufferedReader.readLine())!=null){
pw.println(string);
}
System.out.println("写出完毕");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{//注意关流,否则println是输出在缓冲区
try {
pw.close();
fos.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
------解决方案--------------------
套一个BufferReader进去,然后调用
input.newLine();
//然后在刷新