FileReader和FileWriter

1. 如果想要存取的是一个文本文件,可以直接使用FileReader和FileWriter类,它们分别继承自InputStreamReader和OutputStreamReader。可以直接指定文件名称或File对象来打开指定的文本文件,并读入流转换后的字符,字符的转换会根据系统默认的编码(如果需要指定编码,则还是使用InputStreamReader和OutputStreamReader).

2. FileReader和FileWriter的使用很简单。下面举个例子。在Linux下编写的文本文件,其断行字符是\n,而在Windows下编写的文本文件其断行是\r和\n两个连接字符。如果在Windows下使用记事本打开一个Linux下编写的文本文件,其在显示上并不会有断行的效果,且\n字符会被用一个黑色方块来显示。下面的示例可以读入Linux下编写的文本文件,再写入另一个文件。在读取过程中若遇到\n字符,就取代为\r和\n两个连接字符,这样新的文件在Windows的记事本程序中,就可以有断行显示的效果。

package ysu.hxy;
import java.util.*;
import java.io.*;

public class FileReaderWriterDemo
{
	public static void main(String[] args) 
	{
		try
		{
			FileReader fileReader = new FileReader(args[0]);
			FileWriter fileWriter = new FileWriter(args[0]+".txt");

			int in = 0;
			char[] wlnChar = {'\r','\n'};
			while((in = fileReader.read())!=-1)
			{
				if(in == '\n')
				{
					//写入"\r\n"
				    fileWriter.write(wlnChar);
				}
				else
				{
					fileWriter.write(in);
				}
			}
			fileReader.close();
			fileWriter.close();
		}
		catch(ArrayIndexOutOfBoundsException e)
		{
			System.out.println("请指定文件!");
		}
		catch(IOException e)
		{
			e.printStackTrace();
		}
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值