当前位置: 代码迷 >> J2SE >> java输入输出有关问题
  详细解决方案

java输入输出有关问题

热度:145   发布时间:2016-04-23 20:21:55.0
java输入输出问题
从一个文件中一行行地读取字符串,然后一行行地输出到另一个文件中。
用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();
//然后在刷新
  相关解决方案