Java字符流教程

Java 语言对文件进行操作的时候是以流的方式进行操作的,主要有如下步骤:

使用 File 类打开一个文件

通过

进行读/写操作

关闭输入/输出

Java语言字符流

和字节不同点在于,字符是 char 格式,一个字符等于两个字节。Java 语言中主要提供流 Reader 和 Writer 两个类专门操作字符流。

Java Writer类详解

说明

Writer 是一个抽象类,它是一个字符输出类。Writer 类常用方法:

常用方法

方法

名称

abstract public void close() throws IOException;

关闭输出流

public void write(String str) throws IOException

将字符串输出

public void write(char cbuf[]) throws IOException

将字符串数组输出

abstract public void flush() throws IOException;

强制性清空缓存

案例

package com.haicoder.net.stream;

import java.io.*;

public class WriterTest{

public static void main(String[] args) throws Exception{

System.out.println("嗨客网(www.haicoder.net)");

File file = new File("/Users/haicoder/Documents/code/hai/filetest.txt"); //如果文件不存在,会自动创建

Writer writer = new FileWriter(file);

String appendInfo = "嗨客网,你好啊!\r\n"; //\r\n 在追加文件的时候,表示换行

writer.write(appendInfo); //文件没有,创建并写入

writer.write(appendInfo); //追加文件内容

writer.close();

System.out.println("===结束==");

}

}

运行结果如下

创建文件效果如下

在对文件操作的时候,我们需要捕获异常,为了方便,我们在方法体外面 throws Exception。我们使用了Writer 类的子类 FileWriter 来创建对象。 Writer 可以将字符串直接写入到文件中,也可以将信息追加到文件里面。

Java Reader类

说明

Reader 类也是一个抽象类,它与 Writer 相反,是一个字符输入类,Reader 类常用方法:

常用方法

方法

描述

abstract public void close() throws IOException;

关闭输出流

public int read() throws IOException

读取单个字符

public int read(char cbuf[]) throws IOException

将内容读取到字符数组中,返回读入的长度

案例

package com.haicoder.net.stream;

import java.io.File;

import java.io.FileReader;

import java.io.Reader;

public class ReaderTest{

public static void main(String[] args) throws Exception{

System.out.println("嗨客网(www.haicoder.net)");

File file = new File("/Users/haicoder/Documents/code/hai/filetest.txt"); //如果文件不存在,会自动创建

System.out.println("====第一种读取方式========");

Reader reader = new FileReader(file);

char c[] = new char[1024];

int len = reader.read(c);

reader.close();

System.out.println("内容为:\n" + new String(c, 0, len));

System.out.println("=========第二种读取方式========");

Reader reader1 = new FileReader(file);

int contentLen = 0;

char contentChar[] = new char[1024];

int tmp = 0;

while ((tmp = reader1.read()) != -1) { //如果为 -1 表示读取到文件内容末尾

contentChar[contentLen] = (char) tmp;

contentLen++;

}

reader1.close();

System.out.println("第二种读取内容为:\n" + new String(contentChar, 0, contentLen));

}

}

运行结果如下:

在对文件操作的时候,我们需要捕获异常,为了方便,我们在方法体外面 throws Exception。我们使用了Reader 类的子类 FileReader 来创建对象。

可以通过一次性读取文件的格式,将所有的内容填写到字节数组中,也可以 read() 方法,一个一个字节读取,如果读取到的数据为 -1 表示已经读取到文件末尾。

Java字符流总结

字符流里面,输出流是 Writer ,它可以将字节信息填写到文件里面,Reader 是输入流,它可以将文件中的内容读取。Writer 和 Reader 是抽象类,如果要使用它们的方法或者定义它们的对象,需要使用它们的子类。

java reader类 实例_java字符流-java writer-java reader-嗨客网相关推荐

  1. java reader类 实例_Java Reader ready()用法及代码示例

    Java中Reader类的ready()方法用于检查此Reader是否已准备好被读取.它返回一个布尔值,该值指示阅读器是否准备就绪. 用法: public void ready() 参数:此方法不接受 ...

  2. java定义字符串数组_java字符数组用法总结,java字符串数组的定义与使用

    java字符数组,java数组的定义与使用 二维数组 String[] str = new String[5]; //创建一个长度为5的String(字符串)型的一维数组 String[] str = ...

  3. java 字节流 区别_java字节流字符流区别-嗨客网

    Java字节流与字符流区别 Java字节流与字符流区别教程 我们在 实际上字节流在对文件操作的时候,不会用到缓冲区(内存),对文件本身直接操作而字符流在对文件操作的时候用到了缓冲区,通过缓冲区来对文件 ...

  4. Java基础(二十七)Java IO(4)字符流(Character Stream)

    字符流用于处理字符数据的读取和写入,它以字符为单位. 一.Reader类与Writer类 1.Reader类是所有字符输入流的父类,它定义了操作字符输入流的各种方法. 2.Writer类是所有字符输出 ...

  5. java byte char io流_吃透Java IO:字节流、字符流、缓冲流

    前言有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身, ...

  6. Java IO(五)——字符流进阶及BufferedWriter、BufferedReader

    一.字符流和字节流的区别 拿一下上一篇文章的例子: 复制代码 复制代码 1 package com.demo.io; 2 3 import java.io.File; 4 import java.io ...

  7. 【Java基础】吃透Java IO:字节流、字符流、缓冲流

    文章目录 [Java基础-3]吃透Java IO:字节流.字符流.缓冲流 一.初识java IO 1.1 IO流分类 1.1.1 输入流与输出流 1.1.2 字节流与字符流 1.1.3 节点流和处理流 ...

  8. java字符流字节流场景_【120期】Java IO:字节流、字符流、缓冲流

    IO流是Java中的一个重要构成部分,也是我们经常打交道的.这篇关于Java IO的博文干货满满,堪称全网前三(请轻喷!) 下面几个问题(问题还会继续补充),如果你能对答如流,那么恭喜你,IO知识掌握 ...

  9. fileoutputstream 字节乱码_吃透Java IO:字节流、字符流、缓冲流

    前言 有人曾问fastjson的作者(阿里技术专家高铁):"你开发fastjson,没得到什么好处,反而挨了骂背了锅,这种事情你为什么要做呢?" 高铁答道:"因为热爱本身 ...

  10. JAVA SE学习day_06:字符流、异常处理

    一.字符流 java将流按照读写单位划分为字节流与字符流 字节流:超类为InputStream和OutputStream,读写单位为字节 字符流:超类为Reader和Writer,读写单位为cahr ...

最新文章

  1. java 反射set方法赋值_反射 根据属性名获得属性set方法并为set方法赋值
  2. LOL快要凉?腾讯电竞应如何破除游戏生命周期诅咒
  3. rust(66)-rust智能指针与类型转换
  4. java中map转为json数据_Java技术-将java中Map类型数据转化为json数据并以Ajax形式返回...
  5. html的字体红底颜色,红底黄字门头风水好吗 什么颜色招牌好
  6. optimize table优化mysql例子
  7. java.lang.IllegalStateException: Failed to load ApplicationContext selenium 异常 解决
  8. 千寻位置 开发demo_CICV2019:博世相对高精度定位与千寻绝对高精度定位
  9. window下git的用户切换_Windows下Git的使用
  10. 17.UNIX 环境高级编程--高级进程间的通信
  11. 【线性代数(1)】二阶三阶不等式
  12. c语言中char转换为int的问题
  13. 基于JavaWeb的小区物业管理系统的设计与实现
  14. 随手写了些java题目的答案
  15. javaWeb的线下服装店管理平台、基于ssm(springboot版本也有)+mysql线下服装销售系统
  16. 星环科技的“星图解密”:只有偏执狂,才能让中国基础软件打破对国外进口的依赖...
  17. android下怎样伪装mac,Android刷成iOS?史上最强苹果伪装教程
  18. 写给小白的云计算入门科普
  19. EasyAPI基于电子发票API接口二维码小票对接方案
  20. 热血传奇手游IOS辅助哪个好呢?

热门文章

  1. winrar解压器_今日软件 | 马冬梅下载器、微软OFFICE、安卓超级备份、安卓原生启动器、高颜值音乐播放器、WinRAR、雷鸟下载、动态壁纸...
  2. 安卓远程连接计算机桌面,安卓手机通过远程连接控制电脑的方法
  3. 布谷鸟算法浅谈与简单应用
  4. cad标注样式快捷键_CAD快速入门(二十三):标注样式
  5. 酒店管理系统web版/Java酒店管理系统
  6. 【请验收】证券开户系统常规版本【SIS-OAS1.52.0】即时验证---验证通过------生产验收报告模板...
  7. 计算机专业保研预推免面试记录
  8. python计算图片的信源熵值(信息熵)
  9. 计算机相关专业的学生如何规划自己的职业?
  10. SiamFC复现结果