解析 读取输出字符文档的编码问题

读取文档时经常有乱码:

 

总结了几个读取的几个方法

 

BufferedReader fi = new BufferedReader(new InputStreamReader(new FileInputStream(path), "utf-8"));

 

这是你读取的文档必须是:uft编码的

 

如果是gbk编码的需要改成:gbk

 

BufferedReader raf=new BufferedReader(new FileReader("Test1.txt"));

 

Api中对Filereader是这样描述的

 

此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自己指定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader。

 

FileReader是inputStreamReader的子类

 

然后输出到文档时

 

OutputStreamWriter rf=new OutputStreamWriter(new FileOutputStream("Test2.txt"),"gb2312");

 

 

 

可以这样。。。

 

                      rf.write(s);

 

这样就Ok

 

下面看一个RandomAccessFile的实例

 

import java.io.IOException; import java.io.File; import java.io.RandomAccessFile; class RandomFileTest { public static void main(String[] args) throws Exception { Student s1=new Student(1, "哈哈", 90.5); Student s2=new Student(2, "lisi", 98.5); Student s3=new Student(3, "wangwu", 96.5); File userDir=new File(System.getProperties().getProperty("user.dir")); System.out.println(userDir.getAbsolutePath()); File tempFile=File.createTempFile("~student", ".tmp", userDir); //tempFile.deleteOnExit(); RandomAccessFile raf=new RandomAccessFile(tempFile, "rw"); s1.write(raf); s2.write(raf); s3.write(raf); raf.seek(0); Student s=new Student(); for(long i=0;i

你可能感兴趣的:(基础知识,个人心得)