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。

java filewriter_Java IO: FileReader和FileWriter相关推荐

  1. Java IO: FileReader和FileWriter

    转载自  Java IO: FileReader和FileWriter 作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本章节将简要介绍FileRea ...

  2. java filereader 示例_J04-Java IO流总结四 《 FileReader和FileWriter 》

    FileReader和FileWriter的源码相对简单,下面通过分析它们的源码以更好地进行理解这两个流 1. FileReader FileReader实现了读取底层的字节数据并将其转换为字符数据的 ...

  3. JAVA系列 IO流 知识结构整理 建立合理的知识框架逻辑 输入输出流 理顺你的思维架构Fileoutput inputStream FileWriter FIleReader结构整理

    最近听见一首歌,个人创作时听见觉得挺好听的 先分享给大家https://music.163.com/#/song?id=41666363 それがあなたの幸せとしても (カバー) 切入正题 今天给大家介 ...

  4. IO流的体系及FileReader、FileWriter

    package IOStream;import org.junit.Test;import java.io.File; import java.io.FileReader; import java.i ...

  5. Java FileReader与FileWriter讲解

    FileReader与FileWriter讲解 Reader int read() 读取单个字符.作为整数读取的字符,范围在 0 到 65535 之间 (0x00-0xffff)(2个字节的Unico ...

  6. java io类filereader,39. Java IO: FileReader

    想要查看此教程的目录请点击:Java IO教程目录贴地址 FileReader类(java.io.FileReader),可以基于字符流来读取文件内容.它的工作机制类似于FileInputStream ...

  7. Java基础巩固系列 FileReader和FileWriter(字符流)

    代码示例: public class TestFileReaderWriter {/** 使用FileReader FileWriter 可以实现文本文件的复制* 对于非文本文件(视频文件.音频文件. ...

  8. java中io流实现哪个接口_第55节:Java当中的IO流-时间api(下)-上

    标题图 Java当中的IO流(下)-上日期和时间日期类:java.util.Date 系统时间:long time = System.currentTimeMillis();public class  ...

  9. Java基础—IO流

    第一讲   IO概述 1. 流的概念 IO流即InputOutput的缩写,在Java中IO流用来处理设备之间的数据传输,Java对数据的操作是通过IO流的方式, 我们可以把IO流抽象的当作一根管道, ...

最新文章

  1. Flask开发微电影网站(二)
  2. 思科设备路由器间IPsec ×××实现私网之间通信实战
  3. Android中导入第三方jar
  4. java学习(136):带泛型的类
  5. flutter 获取设备屏幕大小
  6. IOS 自定义导航栏标题和返回按钮标题
  7. Excel怎么快速制作二维码图片?
  8. 牛X的规则引擎urule2
  9. 计算机格式按键在哪儿,键盘开关按键在哪里
  10. ae合成设置快捷键_AE超实用快捷键你了解多少?
  11. Sourcetree和Bitbucket的使用
  12. 固高运动卡的使用 5 插补运动模式之-直线插补运动
  13. 这年头视频编辑软件也开始内卷了,功能这么强居然免费
  14. Android -- 读取assets文件夹下的资源
  15. 【中途结题】基于弥亚微Mi200E的模块通信实验
  16. OL实现属性查询的功能
  17. latex 跳转标签_在 LaTeX 中使用交叉引用
  18. Java讲师与Android讲师通缉令--悬赏2000元
  19. 美丽的晚霞动态高清5K壁纸
  20. 怎样设计才能让文字排版更好看(三)

热门文章

  1. Android系统辅助触控,辅助触控大师软件下载-辅助触控大师 安卓版v5.0.6-PC6安卓网...
  2. java实现魔方_闲来无事,用java写了一个魔方小程序。附源码 | 学步园
  3. 操作系统实验三进程间通信
  4. NX/UG二次开发—其他—分享几个UG内部函数
  5. 优思学院|传统的质量管理和现代的六西格玛管理有何分别?
  6. 网站安全检测接口网站健康状况查询
  7. 写给那些想做程序员和不想做程序员的人
  8. 双线机房双网卡双ip DNSpod智能DNS解析和路由设置
  9. 抖音官网全面改版,网页版正式上线
  10. Windows Mobile 开发资源 [转]