Java FileReader类
FileReader用于以字符为单位读取文本文件,能够以字符流的形式读取文件内容。除了读取的单位不同之外,FileReader与FileInputStream并无太大差异,也就是说,FileReader用于读取文本。根据不同的编码方案,一个字符可能会相当于一个或者多个字节。
构造函数
FileReader(File file) //在给定从中读取数据的 File 的情况下创建一个新FileReader。 FileReader(FileDescriptor fd) //在给定从中读取数据的 FileDescriptor 的情况下创建一个新 FileReader。 FileReader(String fileName) //在给定从中读取数据的文件名的情况下创建一个新FileReader。
方法
void close() //关闭该流并释放与之关联的所有资源。 String getEncoding() //返回此流使用的字符编码的名称。 int read() //读取单个字符。返回值为读入字符对应的int值(0~65535) int read(char[] cbuf, int offset, int length) //将字符读入数组中的某一部分。返回值为读入字符个数 boolean ready() //判断此流是否已经准备好用于读取。返回值为读入字符个数
例子
public static void main(String[] args) throws Excetpion { FileWriter out = new FileWriter("hello2.txt"); out.write ("www.51gjie.com"); //在此可以直接写入字符串,不用转化为字节数组 out.close(); char[] buf = new char[1024]; //字符数组 FileReader in = new FileReader("hello2.txt"); int len = in.read(buf); //此时的read方法可以读取一个字符或几个字符,len代表实际读取到的字符的个数。 System.out.println(new String(buf,0,1024)); //String构造函数把字符数组转化为字符串。 in.close(); }
用FileWriter类向文件中写入一个串字符,然后用FileReader读出写入的内容。
总结
1.在使用FileReader 对象进行文件输入操作的时,JVM先读取本地文本文,然后将其格式转化为Unicode编码格式进行操作。再用FileWriter进行文本文件输出时则把Unicode编码格式再转换成本地(本地主机上)的编码格式(如ASCII或者GBK等)。
2.FileReader与FileWriter两个类和FileInputStream和FileOutputStream两个类的操作方法基本相同,只不过前者基于字符,后者基于字节(byte),若操作的文件不是文本文件,则建议使用FileInputStream和FileOutputStream进行文件的输入输出。
版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。