Java.Reader_Writer

来源:互联网 发布:软件安装手册 编辑:程序博客网 时间:2024/06/07 06:36

Java中的字符是Unicode编码的, InputStream和OutputStream都是用来处理字节的,在处理字符时需要用getBytes()转换成字节,这就需要编写字节、字符之间的转换代码
java中提供了单独的类对IO设备进行字符输入与输出

Reader和Writer是所有字符流类的的抽象基类,用于简化对字符串的输入输出编程,即用于读写文本数据

二进制文件和文本文件的区别
如果一个文件专用于存储文本字符,而又没有包含文本之外的字符,就可称之为文本文件。除此之外的文件就是二进制文件
Reader和Writer两个类主要用于操作文本数据的内容,而InputStream和OutputStream主要操作二进制格式的内容

FileInputStream.write(byte [] buf)写入字节数组,会自动调用flush方法
FileInputStream.write(byte b)写入单个字节,此方法不调用flush()方法

FileWriter.write(char [] cbuf)写入字符数组,不会自动调用flush方法

使用FileWriter写入字符数据比FileOutputStream要简便很多,但是FileReader并不比FileInputStream读取字符数据要简便多少,都是要先读取到一个字符数组或者字节数组中,然后把数组转换成字符串。
但是以后用包装类处理文本文件的时候就要用到FileReader

 

[java] view plain copy
  1. import java.io.*;  
  2. public class FileReaderTest {  
  3.       
  4.     public static void main(String[] args) throws Exception {  
  5.         File f2=new File("helloj.txt");  
  6.         FileWriter fw=new FileWriter(f2);  
  7.         fw.write("大家好,我是Siven");  
  8.         fw.close();  
  9.           
  10.         FileReader fr=new FileReader(f2);  
  11.         char [] cbuf=new char[1024]; //字符数组  
  12.         int len=fr.read(cbuf);  
  13.         System.out.println(new String(cbuf,0,len));  
  14.         fr.close();  
  15.     }     

原创粉丝点击