您的位置:首页 > Web前端

IO流的补充: 字符流FileReader 和FileWriter BufferedReader和BufferedWriter的用法

2013-08-29 19:23 603 查看
上次只写了字节流的操作,现在吧字符流的也补上

同样FileReader和BuuferedReader是读取文件到内存,是属于输入流

FileWriter和BufferedWriter是从内存输出到文件中,属于输出流(都是以内存为参照)

看下FileWriter和FileReader的用法

import java.io.*;;

/**演示文件字符流
*
* @author Wang Yanming
*
*/
public class Demo1 {

public static void main(String[] args) {
//文件取出字符流对象(输入流)
FileReader fr = null;
//写入到文件(输出流)
FileWriter fw = null;

try {
//创建一个file对象
fr = new FileReader("c:\\test.txt");
fw = new FileWriter("d:\\vvv.txt");
//读入到内存
char []c= new char[1024];
int n = 0;//记录实际读取的字符数
while((n=fr.read(c))!=-1)
{
//				System.out.println(c);
/*这样又可以打印出来,但是有的情况下会乱码,
* 因为c的大小事1024,如果不到1024就打印,会把后面的也打印出来*/
String s = new String(c,0,n);//采用这种形式
System.out.print(s);//这里不要写换行println
//				fw.write(c);
/*当然这样写会把不到1024的那部分数据也写进去 会导致在记事本中乱码,所以建议按下面写*/
fw.write(c, 0, n);

}

} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally
{
try
{
fr.close();//如果不关闭会导致文件写不进去
fw.close();

} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}

}

}


看下BufferedReader和BufferedWriter的用法

import java.io.*;

/**演示缓冲字符流案例
* BufferedReader 和BufferdWriter
* @author Wang Yanming
*
*/
public class Demo1 {

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader br = null;
BufferedWriter bw = null;

try {
//			br = new BufferedReader("c:\\test.txt");
//直接诶按照上面写会出错,因为BufferdReader只认识Reader,
//而FileReader又是reader的子类先创建一个FileReader对象,
FileReader fr = new FileReader("c:\\test.txt");//问题:读取d:\\ss.txt,不能输出可以写
FileWriter fw = new FileWriter("d:\\好似.txt");
br = new BufferedReader(fr);
bw = new BufferedWriter(fw);

String s="";
while((s=br.readLine())!=null)
{
System.out.println(s);
//这里要写println 因为是按照行读取,不会读换行符,可因参照API,
//所以如果不写ln的话就不会换行

/**以下是输出到磁盘**/
s = s+"\r\n";//因为本身是换行的 ,所以要加上"\r\n"
bw.write(s);

}

} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
finally
{
try {
br.close();
bw.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐