Java IO: FileReader和FileWriter

转载自  Java IO: FileReader和FileWriter

作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com)

本章节将简要介绍FileReader和FileWriter。与FileInputStream和FileOutputStream类似,FileReader与FileWriter用于处理文件内容。

FileReader

原文链接

FileReader能够以字符流的形式读取文件内容。除了读取的单位不同之外(译者注:FileReader读取字符,FileInputStream读取字节),FileReader与FileInputStream并无太大差异,也就是说,FileReader用于读取文本。根据不同的编码方案,一个字符可能会相当于一个或者多个字节。代码如下:

Reader reader = new FileReader("c:\\data\\input-text.txt");int data = reader.read();while(data != -1) {//do something with data...doSomethingWithData(data);data = reader.read();}reader.close();

注意:为了清晰,代码忽略了一些必要的异常处理。想了解更多异常处理的信息,请参考Java IO异常处理。

read()方法返回一个包含了读取到的字符内容的int类型变量(译者注:0~65535)。如果方法返回-1,表明FileReader中已经没有剩余可读取字符,此时可以关闭FileReader。-1是一个int类型,不是byte或者char类型,这是不一样的。

FileReader拥有其他可选的构造函数,能够让你使用不同的方式读取文件,更多内容请查看官方文档。

FileReader会假设你想使用你所使用的JVM的版本的默认编码处理字节流,但是这通常不是你想要的,你可以手动设置编码方案。

如果你想明确指定一种编码方案,利用InputStreamReader配合FileInputStream来替代FileReader(译者注:FileReader没有可以指定编码的构造函数)。InputStreamReader可以让你设置编码处理从底层文件中读取的字节。

FileWriter

原文链接

FileWriter能够把数据以字符流的形式写入文件。同样是处理文件,FileWriter处理字符,FileOutputStream处理字节。根据不同的编码方案,一个字符可能会相当于一个或者多个字节。代码如下:

Writer writer = new FileWriter("c:\\data\\output.txt");while(moreData) {String data = getMoreData();write.write(data);}writer.close();

处理文件都会碰到的一个问题是,当前写入的数据是覆盖原文件内容还是追加到文件末尾。当你创建一个FileWriter之后,你可以通过使用不同构造函数实现你的不同目的。

以下的构造函数取文件名作为参数,将会新写入的内容将会覆盖该文件:

Writer writer = new FileWriter("c:\\data\\output.txt");

以下的构造函数取文件名和一个布尔变量作为参数,布尔值表明你是想追加还是覆盖该文件。例子如下:

Writer writer = new FileWriter("c:\\data\\output.txt", true); //appends to file
Writer writer = new FileWriter("c:\\data\\output.txt", false); //overwrites file

同样,FileWriter不能指定编码,可以通过OutputStreamWriter配合FileOutputStream替代FileWriter。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/327823.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java sentence_Java Sentence類代碼示例

本文整理匯總了Java中aima.core.logic.propositional.parsing.ast.Sentence類的典型用法代碼示例。如果您正苦於以下問題:Java Sentence類的具體用法?Java Sentence怎麽用?Java Sentence使用的例子?那麽恭喜您, 這裏精選的類代碼示…

Redis在windows下的安装、启动、配置

Redis在windows下的安装、启动、配置 原创scorpio_meng 最后发布于2018-06-29 13:42:39 阅读数 9687 收藏 展开 1,下载地址:https://github.com/MicrosoftArchive/redis/releases 2,解压缩后在文件夹中创建两个文件夹dbcache、logs。 3&am…

在ASP.NET Core中使用Angular2,以及与Angular2的Token base身份认证

Angular2是对Angular1的一次彻底的,破坏性的更新。 相对于Angular1.x,借用某果的广告语,唯一的不同,就是处处都不同。 首先,推荐的语言已经不再是Javascript,取而代之的TypeScript,(TypeScript …

xml vs db.properties

xml vs db.properties <property name"url" value"jdbc:mysql://localhost:3306/mybatis?useSSLtrue&amp;useUnicodetrue&amp;characterEncodingUTF-8"/>urljdbc:mysql://localhost:3306/mybatis? useSSLtrue&useUnicodetrue&cha…

require.ensure与require AMD的区别

转载自 webpack: require.ensure与require AMD的区别 webpack: require.ensure与require AMD的区别 简介 require-ensure和require-amd的区别&#xff1a; require-amd 说明: 同AMD规范的require函数&#xff0c;使用时传递一个模块数组和回调函数&#xff0c;模块都被下载下来…

python django 是啥_python的django做什么的

Django是一个开放源代码的Web应用框架&#xff0c;由Python写成。采用了MTV的框架模式&#xff0c;即模型M&#xff0c;视图V和模版T。它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内容为主的网站的&#xff0c;即是CMS(内容管理系统)软件。并于2005年7月在BSD许可…

org.springframework.amqp.AmqpConnectException java.net.ConnectException的解决办法

一、报错信息 spring cloud集成rabbitmq时报错&#xff1a; org.springframework.amqp.AmqpTimeoutException: java.util.concurrent.TimeoutException at org.springframework.amqp.rabbit.support.RabbitExceptionTranslator.convertRabbitAccessException(RabbitExceptio…

hibernate注解实体类(Dept.java)

Dept.java 部门信息表的实体类详情 package cn.bdqn.hibernate_Criteria.entity;import java.util.HashSet; import java.util.Set;import javax.persistence.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Id; i…

.NET Core 1.1 升级公告

2016年11月16日发布.NET Core 1.1 。 它包括对其他Linux发行版的支持&#xff0c;有很多更新&#xff0c;是当前的第一个版本。 将在下面描述所有这些变化。 它是“Go Live”&#xff0c;可用于生产工作负载。 您可以立即下载版本&#xff1a;: Windows x64Windows x86macOS …

Java IO: InputStreamReader和OutputStreamWriter

转载自 Java IO: InputStreamReader和OutputStreamWriter作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) 本章节将简要介绍InputStreamReader和OutputStreamWriter。细心的读者可能会发现&#xff0c;在之前的文章中&#xff0c;IO中的类要么以Stream结尾&#xff0c…

java常用代码_Java 中常用代码 (欢迎补充)

//------------------------------------------------------------------------------------------------------生成四位随即验证码String str "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";StringBuilder s new StringBuilder();int len 4…

Intellij IDEA 重置所有工具栏 Intellij IDEA 中的 Debug 控制台输出窗口不见了的解决办法

Intellij IDEA 中的 Debug 控制台输出窗口不见了的解决办法 在 Debug 工具窗口&#xff0c;如图点击左侧重置布局图标&#xff0c;你的console窗口就还原了。

基于 .Net Core 的组件 Nuget 包制作 amp; 发布

微软的 ASP.Net Core 强化了 Nuget 的使用&#xff0c;所有的 .Net Core 组件均有 Nuget 管理&#xff0c;所以有必要探讨一下 .Net Core 组件制作 Nuget 包和发布。 之前 .Net Framework 程序集打包 Nuget 有以下方法&#xff1a; 1. 使用命令 nuget pack 详见博客园的一篇博…

#{} vs ${}

#{}: 是以预编译的形式&#xff0c;将参数设置到SQL语句中&#xff1b;PreparedStatement:防止SQL注入 ${}: 取出的值直接拼装在SQL语句中&#xff1b;会有安全问题 大多数情况下&#xff0c;我们去参数的值都应该使用#{}

Java IO: Reader和Writer

转载自 Java IO: Reader和Writer作者: Jakob Jenkov 译者: 李璟(jlee381344197gmail.com) Reader 原文链接 Reader是Java IO中所有Reader的基类。Reader与InputStream类似&#xff0c;不同点在于&#xff0c;Reader基于字符而非基于字节。换句话说&#xff0c;Reader用于读取…

idea新建module 后 mapper老是说mapper和xml没有绑定

20200225_005a 三层全部走通 上面走不出来应该是spingboot的版本太高了 选spring版本的时候选到最低版本 intian_talentapartment_api.zip repair

java线程的创建线程_多线程(Thread、线程创建、线程池)

第1章 多线程1.1 多线程介绍学习多线程之前&#xff0c;我们先要了解几个关于多线程有关的概念。进程&#xff1a;进程指正在运行的程序。确切的来说&#xff0c;当一个程序进入内存运行&#xff0c;即变成一个进程&#xff0c;进程是处于运行过程中的程序&#xff0c;并且具有…

hibernate注解实体类(Emp.java)

Emp.java 员工信息表的注解实体类详情&#xff1a; package cn.bdqn.hibernate_Criteria.entity;import java.util.Date; import javax.persistence.*;/*** Emp entity. author MyEclipse Persistence Tools*/Entity Table(name"EMP") public class Emp implements j…