JAVA中常用IO流类:FileReader和FileWriter .

http://blog.csdn.net/caixiexin/article/details/6719450

 

FileReader 用于以字符为单位读取文本文件

 

构造方法摘要
FileReader(File file) 
          在给定从中读取数据的 File 的情况下创建一个新FileReader
FileReader(FileDescriptor fd) 
          在给定从中读取数据的 FileDescriptor 的情况下创建一个新 FileReader
FileReader(String fileName) 
          在给定从中读取数据的文件名的情况下创建一个新FileReader

 

从InputStreamReader类继承的方法:

方法摘要
 voidclose() 
          关闭该流并释放与之关联的所有资源。
 StringgetEncoding() 
          返回此流使用的字符编码的名称。
 intread() 
          读取单个字符。返回值为读入字符对应的int值(0~65535)
 intread(char[] cbuf, int offset, int length) 
          将字符读入数组中的某一部分。返回值为读入字符个数
 booleanready() 
          判断此流是否已经准备好用于读取。返回值为读入字符个数

 

 

FileWriter类用于将字符数据写出到文本文件中

构造方法摘要

FileWriter(File file) 
          根据给定的 File 对象构造一个 FileWriter 对象。

FileWriter(File file, boolean append) 
          根据给定的 File 对象构造一个 FileWriter 对象。

FileWriter(FileDescriptor fd) 
          构造与某个文件描述符相关联的 FileWriter 对象。

FileWriter(String fileName) 
          根据给定的文件名构造一个 FileWriter 对象。

FileWriter(String fileName, boolean append) 
          根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。

从OutputStreamWriter类继承的方法:

方法摘要

 void

close() 
          关闭此流,但要先刷新它。

 void

flush() 
          刷新该流的缓冲。

 String

getEncoding() 
          返回此流使用的字符编码的名称。

 void

write(char[] cbuf, int off, int len) 
          写入字符数组的某一部分。

 void

write(int c) 
          写入单个字符。

 void

write(String str, int off, int len) 
          写入字符串的某一部分。

 

实例:

用这两个类实行复制文本文件的操作。

  1. import java.io.FileReader;  
  2. import java.io.FileWriter;  
  3. import java.io.IOException;  
  4. class IODemo  
  5. {  
  6.     public static void main(String[] args)   
  7.     {  
  8.   
  9.   
  10.   
  11.         try  
  12.         {  
  13.         //使用FileReader和FileWriter进行文件复制(操作的是字符)   
  14.         FileReader fr=new FileReader("a.txt");  
  15.         FileWriter fw=new FileWriter("c.txt");  
  16.             int read;  
  17.             //byte b[]=new byte[1024];   
  18.             read=fr.read();  
  19.             while(read!=-1)  
  20.             {  
  21.                 fw.write(read);  
  22.                 //read=fis.read(b);   
  23.                 read=fr.read();  
  24.             }  
  25.             fr.close();  
  26.             fw.close();  
  27.         }  
  28.         catch (IOException e)  
  29.         {  
  30.             e.printStackTrace();  
  31.         }  
  32.           
  33.     }  
  34. }  
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
class IODemo
{
	public static void main(String[] args) 
	{



		try
		{
		//使用FileReader和FileWriter进行文件复制(操作的是字符)
		FileReader fr=new FileReader("a.txt");
		FileWriter fw=new FileWriter("c.txt");
			int read;
			//byte b[]=new byte[1024];
			read=fr.read();
			while(read!=-1)
			{
				fw.write(read);
				//read=fis.read(b);
				read=fr.read();
			}
			fr.close();
			fw.close();
		}
		catch (IOException e)
		{
			e.printStackTrace();
		}
		
	}
}

上述例子也可以使用read()方法和write()方法逐个读入和写出字符

注:

1.在使用FileReader 对象进行文件输入操作的时,JVM先读取本地文本文,然后将其格式转化为Unicode编码格式进行操作。再用FileWriter进行文本文件输出时则把Unicode编码格式再转换成本地(本地主机上)的编码格式(如ASCII或者GBK等)。

2.FileReader与FileWriter两个类和FileInputStream和FileOutputStream两个类的操作方法基本相同,只不过前者基于字符,后者基于字节(byte),若操作的文件不是文本文件,则建议使用FileInputStream和FileOutputStream进行文件的输入输出。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值