Java IO操作之文件读取与写入 无乱码FileOutputStream FileInputStream使用-IO写utf-8乱码问题

来源:互联网 发布:灰色预测软件2007 编辑:程序博客网 时间:2024/05/23 02:01

在Java里可以通过FileInputStream和InputStreamReader读取文件内容,通过FileOutputStream和OutputStreamWriter来写入数据到文件.InputStreamReader和OutputStreamWriter可以设置指定的字符编码来杜绝乱码.下面的例子是一个写入和读取本地文件的代码.
上代码:

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
package com.pocketdigi; import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) throws IOException {File f = new File("d:/a.txt");FileOutputStream fop = new FileOutputStream(f);// 构建FileOutputStream对象,文件不存在会自动新建OutputStreamWriter writer = new OutputStreamWriter(fop, "UTF-8");// 构建OutputStreamWriter对象,参数可以指定编码,默认为操作系统默认编码,windows上是gbkwriter.append("中文输入");// 写入到缓冲区writer.append("\r\n");// //换行writer.append("English");//writer.flush();// 刷新缓存冲,写入到文件,如果下面已经没有写入的内容了,直接close也会写入writer.close();//关闭写入流,同时会把缓冲区内容写入文件,所以上面的注释掉fop.close();// 关闭输出流,释放系统资源 FileInputStream fip = new FileInputStream(f);// 构建FileInputStream对象InputStreamReader reader = new InputStreamReader(fip, "UTF-8");// 构建InputStreamReader对象,编码与写入相同 StringBuffer sb = new StringBuffer();while (reader.ready()) {sb.append((char) reader.read());// 转成char加到StringBuffer对象中}System.out.println(sb.toString());reader.close();// 关闭读取流fip.close();// 关闭输入流,释放系统资源 }

0 0