news 2026/7/30 1:18:23

Java文件读、写操作指定的编码格式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java文件读、写操作指定的编码格式

1、读文件:

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"));


2、写文件:

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")));
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/30 1:15:07

技术选型的方法论——从需求分析到决策矩阵的系统化框架

技术选型的方法论——从需求分析到决策矩阵的系统化框架 一、背景与动机 技术选型是架构师最频繁的决策场景之一:数据库选什么?缓存用什么?消息队列选哪个?RPC 框架怎么定?这些决策看似"选个工具"&#xf…

作者头像 李华
网站建设 2026/7/30 1:14:30

ThreeJS Water终极指南:打造逼真3D水面的完整教程

ThreeJS Water终极指南:打造逼真3D水面的完整教程 【免费下载链接】threejs-water Implementation of Evan Wallaces webgl-water demo using ThreeJS 项目地址: https://gitcode.com/gh_mirrors/th/threejs-water 想要在网页中创建如真实般波光粼粼的水面效…

作者头像 李华
网站建设 2026/7/30 1:13:06

静态托管成本优化:独立产品的「带宽」与「构建」双线控制

静态托管成本优化:独立产品的「带宽」与「构建」双线控制 一、当账单开始「无声增长」 独立产品的静态托管成本,在产品的早期阶段往往低到可以忽略——Vercel、Netlify、或 Cloudflare Pages 的免费额度,对于每天几百到几千次页面访问&…

作者头像 李华
网站建设 2026/7/30 1:04:14

2026国内音效素材平台横评:从版权、资源量、适配场景全面分析

一、搞笑音效:短视频时代的"流量开关"在短视频的创作逻辑中,搞笑音效不是锦上添花的装饰,而是影响内容传播力的重要组件。一个恰到好处的"尴尬停顿"音效能让段子好玩十倍,一个夸张的"滑倒"音效能让…

作者头像 李华
网站建设 2026/7/30 0:55:38

2026OpenClaw衍生AI工具推荐:四款桌面智能体盘点

OpenClaw到底是什么,为什么衍生出这么多工具?OpenClaw是2025年底爆火的开源AI Agent框架,由奥地利开发者Peter Steinberger发起,2026年初正式定名。它的核心卖点用一句话就能说清楚:把大模型从会聊升级为能动手&#x…

作者头像 李华