文件字符流(FileReader/FileWriter)针对文件字符的操作,不同于文件字节流(FileInputStream/FileOutputStream)。它是针对字符来进行操作的,因此他在处理纯字符集(纯文本)时十分的方便。而文件字节流能够处理音频,视频等等除纯文本以外的文件类型,因为他们是以字节为单位的。但是文件字符流不能够处理字节,它只能处理以字符为单位的文件。因此他不能处理音频,视频等以字节为单位的文件。

一.文件字符输入流(FileReader)

文件字符输入流是将文件中的字符读取到程序中。

文件字符流的操作步骤与文件字节流一样:

1.创建源

2.选择流

3.具体操作

4.释放资源

以文件字符流操作纯文本文件,可以很好的解决乱码的问题。具体代码如下:

import java.io.*;/*** 测试Reader(对字符进行操作)* 字符数组-->字符串* Reader:read()*/
public class TestReader {public static void main(String[] args) {//创建源File file = new File("abc.txt");//选择流Reader reader = null;try {reader = new FileReader(file);//操作char[] flush = new char[1024];   //缓冲容器  InputStream:byte[](字节数组)  Reader:char[](字符数组)int len = -1;                 //接收长度try {while ((len = reader.read(flush))!=-1){//字符数组-->字符串String str = new String(flush,0,len);System.out.print(str);}} catch (IOException e) {e.printStackTrace();}} catch (FileNotFoundException e) {e.printStackTrace();}finally {try {if (reader!=null){reader.close();}} catch (IOException e) {e.printStackTrace();}}}
}

以字符数组为单位进行操作,因此定义读取的字符数组char[],每次读取1024个字符,然后转化成字符串(String str = new String(flush,0,len))在进行写出。

二.文件字符输出流(FileWriter)

文件字符输出流是将程序中的字符串以字符形式写出到文件中去。具体代码如下:

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;/*** 测试Writer(对字符进行操作)* 字符串-->字符数组*/
public class TestWriter {public static void main(String[] args) {//创建源File file = new File("dest.txt");//选择流Writer writer = null;try {writer = new FileWriter(file,true);//操作//写法一
//            String str = "问君能有几多愁?恰似一江春水向东流。";
//            //字符串-->字符数组
//            char[] datas = str.toCharArray();
//            writer.write(datas,0,datas.length);//写法二
//            String str = "问君能有几多愁?恰似一江春水向东流。";
//            writer.write("\t"+str);//写法三String str = "\n问君能有几多愁?恰似没穿秋裤遇寒流。";String str1 = "\n笑渐不闻声渐悄,多情却被无情恼";writer.append(str).append(str1);writer.flush();} catch (IOException e) {e.printStackTrace();}finally {try {if (writer!=null){writer.close();}} catch (IOException e) {e.printStackTrace();}}}
}

FileWriter是将字符串转化为字符数组(char[] datas = str.toCharArray())然后进行写出,如果进行多个字符串的写出,可以使用writer.append()进行追加,这样可以一次性写出多条字符串语句到文件中。

文件字符流(FileReader/FileWriter)相关推荐

  1. Java的知识点29—— 文件字符流、字节数组流

    文件字符流 FileReader  FileWriter 分段读取 文件字符输入流 package cn.dym; import java.io.File; import java.io.FileNo ...

  2. 基本文件字符流FileWriter、FileReader

    详细介绍了Java IO中的基本文件字符流FileWriter.FileReader的方法以及使用方式. 文章目录 1. IO流概述 2 FileWriter文件字符输出流 2.1 构造器 2.2 A ...

  3. 字符流(FileReader,FileWriter,BufferedReader,BufferedWriter)

    字符流(FileReader,FileWriter,BufferedReader,BufferedWriter) 字符流只能对纯文本进行操作,所以输出不会乱码,字符流又分为字符输输入流与字符输出流,他 ...

  4. .dat文件写入byte类型数组_文件字节流、文件字符流、缓冲字节流、缓冲字符流字节数组流、数据流、转换流、对象流...

    一.实操名称: 描述如下流的基本作用:文件字节流.文件字符流.缓冲字节流.缓冲字符流字节数组流.数据流.转换流.对象流二.描述1.文件字节流:包括:FileInputStream,FileOutput ...

  5. 1.文件字符流:什么是文件字符流???

    1.文件字符流:什么是文件字符流??? 学习:第7遍 1.什么是文件字符流??? Reader是字符输入流的顶层父类,直接子类:6个 Reader常用子类: FileReader BufferedRe ...

  6. 文件字符输入流 FileReader java

    文件字符输入流 FileReader java 构造方法 FileReader(File file) 在给定从中读取数据的 File 的情况下创建一个新 FileReader. FileReader( ...

  7. java 文件字节流_Java:文件字符流和字节流的输入和输出

    最近在学习Java,所以就总结一篇文件字节流和字符流的输入和输出. 总的来说,IO流分类如下: 输入输出方向:     输入流(从外设读取到内存)和输出流(从内存输出到外设) 数据的操作方式: 字节流 ...

  8. 20170118:File类与IO流,File类,IO流的基本原理,IO流的分类,文件字节流与文件字符流

    一.File类 1.java.io.File类代表系统文件(文件和目录) 访问文件属性步骤 1). 创建文件对象:File file = new File(String pathname); 2). ...

  9. Java_文件字符流说明

    FileReader和FileWrite介绍 FileReader和FileWriter是字符流,即按照字符来操作io FileReader相关方法: new FileReader(File/Stri ...

最新文章

  1. 神经网络为什么需要多次epoch
  2. 华为正式宣布养猪,网友沸腾:支持华为自救!
  3. SAP MM 初阶之事务代码MIGO中采购退货的处理
  4. Java入门(一):Hello World !
  5. np.trapz 生动的解释
  6. 第五章5.1 strace
  7. 045_Unicode对照表十一
  8. bootloader搞定,1.67秒!
  9. MAVEN简介之——settings.xml
  10. 2018/7/16-纪中某C组题【jzoj4024,jzoj4025,jzoj2136,jzoj2137】
  11. 坐标下降法和交替最小二乘法的区别是什么?
  12. Java基础总结(上)
  13. Web UI设计基础
  14. 原来这就是公文写作领导讲话稿万能模板(1)
  15. Shardingsphere 简介
  16. 2023年高新技术企业认定申报注意事项
  17. mysql关系图查看
  18. typescript (TS)进阶篇 --- 内置高阶泛型工具类型(Utility Type)
  19. Git工作原理_繁星漫天_新浪博客
  20. 恶意代码Lab11-03分析

热门文章

  1. java 控制台scanner的中文输入问题
  2. python 获取收件箱的具体信息
  3. matlab绘制二次曲线,并找出最大值位置(找出两曲线的最大差值点)
  4. 浅谈Flutter跨平台调用方式MethodChannel
  5. charger在充电达到75%停止充电
  6. WTK运行报出Create process failed”错误
  7. Kindle PaperWhite 3
  8. 二级mysql真题_计算机二级MySQL数据库真题
  9. 工厂生产现场怎样制定6s管理制度?
  10. Ubuntu18.04安装cuda+ [ERROR]: Install of driver component failed.的解决