IO流的补充: 字符流FileReader 和FileWriter BufferedReader和BufferedWriter的用法
上次只写了字节流的操作,现在吧字符流的也补上
同样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();
}
}
}
}
还没有评论,来说两句吧...