[转]java按指定编码写入和读取文件内容的类
读文件:
BufferedReader
从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因此,建议用 BufferedReader 包装所有其 read() 操作可能开销很高的 Reader(如 FileReader 和 InputStreamReader)。例如,
BufferedReader in
= new BufferedReader(new FileReader("foo.in"));
将缓冲指定文件的输入。如果没有缓冲,则每次调用 read() 或 readLine() 都会导致从文件中读取字节,并将其转换为字符后返回,而这是极其低效的。
可以对使用 DataInputStream 进行按原文输入的程序进行本地化,方法是用合适的 BufferedReader 替换每个 DataInputStream。
为了指定文件的编码方式,再进入如下修改:
//BufferedReader in = new BufferedReader(new FileReader(saveFilename));
BufferedReader in = new BufferedReader(new InputStreamReader(new FileInputStream(saveFilename),"GB2312"));
写文件:
BufferedWriter
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
可以指定缓冲区的大小,或者接受默认的大小。在大多数情况下,默认值就足够大了。
该类提供了 newLine() 方法,它使用平台自己的行分隔符概念,此概念由系统属性 line.separator 定义。并非所有平台都使用新行符 ('\n') 来终止各行。因此调用此方法来终止每个输出行要优于直接写入新行符。
通常 Writer 将其输出立即发送到基础字符或字节流。除非要求提示输出,否则建议用 BufferedWriter 包装所有其 write() 操作可能开销很高的 Writer(如 FileWriters 和 OutputStreamWriters)。例如,
PrintWriter out
= new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
将缓冲 PrintWriter 对文件的输出。如果没有缓冲,则每次调用 print() 方法会导致将字符转换为字节,然后立即写入到文件,而这是极其低效的。
为了指定文件的编码方式:
PrintWriter out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(new FileOutputStream(saveFilename),"GB2312")));
相关文章
- java中调用kettle转换文件
- Java使用itextpdf生成PDF文件
- java安全编码指南之:文件IO操作
- Java NIO中的FileLock(文件锁)
- Java 按行读写文件(解决中文乱码)
- java基础—文件的切割与合并
- LeetCode 16-20 题 详解 Java版 ( 万字 图文详解 LeetCode 算法题16-20 =====>>> <建议收藏>)
- 回归JAVA: java文件编译后,出现xx$1.class的原因
- Java Date Time 教程-java.util.Date
- Java NIO 读取文件、写入文件、读取写入混合
- 【Java】java基本知识
- 面试题 Java 遍历文件夹及其子文件夹下的所有文件,将文件路径输出到控制台
- 第42节:Java知识点回顾复习
- Java中的读文件,文件的创建,写文件
- java读取excel
- 【Java】Eclipse如何创建java项目并运行
- 将写好的.py/.java程序变成.exe文件
- com.sun.xml.internal.ws.server.ServerRtException: Server Runtime Error: java.net.BindException: Cannot assign requested address: bind
- 由获取微信access_token引出的Java多线程并发问题
- HDFS常用Java API
- 神秘的java
- java 按字节读写二进制文件(Base64编码解码)
- java读取大文件 超大文件的几种方法
- java中相同名字不同返回类型的方法
- Java文件导入导出
- Java虚拟机:class类文件结构
- java读取文件并获得文件编码,转换为指定编码的工具类代码
- Java多媒体编程应用
- java读取.properties文件乱码
- Java中是否可以继承String类,为什么
- java 文件读写demo
- 使用Java API创建(create),查看(describe),列举(list),删除(delete)Kafka主题(Topic)--转载
- java中<<、>>、>>>
- Java的++自增