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();
}
}
}