一、字符流

字符流概述:

在操作过程中字节流可以操作所有数据,操作的文件中有中文字符,并且需要对

中文字符做出处理

二、字符编码表

文字——>(数字):编码。"abc".getBytes() byte[]

数字——>(文字):解码。byte[] b = {97, 98, 99} new String(b)

三、字符输入流Reader

FileReader类

此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的;用来操作文件的字符输入流(简便的流)

使用字节流读写中文字符
public class CharStreamDemo {

	public static void main(String[] args) throws IOException {
// 给文件中写中文
writeCNText(); // 读取文件中的中文,读取的都是数字,跟字符编码表有关
readCNText();
} public static void readCNText() throws IOException {
InputStream is = new FileInputStream("e:/file.txt");
int ch = 0;
while((ch = is.read()) != -1){
System.out.println(ch);
} is.close();
} public static void writeCNText() throws IOException {
OutputStream os = new FileOutputStream("e:/file.txt");
os.write("Java欢迎您~~~".getBytes());
os.close();
} }
使用字符输出流读取字符

用来操作文件的字符输出流(简便的流)

public class CharStreamDemo {

	public static void main(String[] args) throws IOException {
// 给文件中写中文
writeCNText(); // 读取文件中的中文
readCNText(); } public static void readCNText() throws IOException {
Reader reader = new FileReader("e:/file.txt");
int ch = 0;
while((ch = reader.read()) != -1){
// 输入的字符对应的编码
System.out.print(ch + " = "); // 输入字符本身
System.out.println((char) ch);
} reader.close();
} public static void writeCNText() throws IOException {
OutputStream os = new FileOutputStream("e:/file.txt");
os.write("Java欢迎您~~~".getBytes());
os.close();
} }

四、字符输入流Writer

FileWriter类

写入字符到文件中,先进行流的刷新,再进行流的关闭

flush() & close() 的区别

flush():将流中的缓冲区缓冲的数据刷新到目的地中,刷新后,流还可以继续使用

close():关闭资源,但在关闭前会将缓冲区中的数据先刷新到目的地,否则丢失数据,然后再关闭流。流不可以使用。如果写入数据多,一定要一边写一边刷新,最后一次可以不刷新,由close完成刷新并关闭。

public class FileWriterDemo {
public static void main(String[] args) throws IOException {
Writer writer = new FileWriter("e:/text.txt");
writer.write("你好,谢谢,再见");
/*
* flush() & close()
* 区别:
* flush():将流中的缓冲区缓冲的数据刷新到目的地中,刷新后,
* 流还可以继续使用
* close():关闭资源,但在关闭前会将缓冲区中的数据先刷新到目的地,
* 否则丢失数据,然后再关闭流。流不可以使用。
* 如果写入数据多,一定要一边写一边刷新,最后一次可以不刷新,
* 由close完成刷新并关闭。
*/
writer.flush();
writer.close();
}
}

Java—字符流的更多相关文章

  1. Java 字符流实现文件读写操作(FileReader-FileWriter)

    Java 字符流实现文件读写操作(FileReader-FileWriter) 备注:字符流效率高,但是没有字节流底层 字节流地址:http://pengyan5945.iteye.com/blog/ ...

  2. java字符流操作flush()方法及其注意事项

    java字符流操作flush()方法及其注意事项   flush()方法介绍 查阅文档可以发现,IO流中每一个类都实现了Closeable接口,它们进行资源操作之后都需要执行close()方法将流关闭 ...

  3. [Java] 字符流 Writer,输出字符数据PrintWriter

    package test.stream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.Fi ...

  4. [Java] 字符流Reader,读取字符数据

    package test.stream; import java.io.BufferedReader; import java.io.FileNotFoundException; import jav ...

  5. Java字符流和字节流对文件操作

    记得当初自己刚开始学习Java的时候,对Java的IO流这一块特别不明白,所以写了这篇随笔希望能对刚开始学习Java的人有所帮助,也方便以后自己查询.Java的IO流分为字符流(Reader,Writ ...

  6. Java 字符流操作

    上篇文章Java 字节流操作介绍了java中基本的字节流操作,但是我们常常对于字符操作,如果使用字节流来实现输入输出就显得麻烦,我们可以使用字符流来实现对我们看得见的字符char进行操作,主要内容如下 ...

  7. Java 字符流文件读写

    上篇文章,我们介绍了 Java 的文件字节流框架中的相关内容,而我们本篇文章将着重于文件字符流的相关内容. 首先需要明确一点的是,字节流处理文件的时候是基于字节的,而字符流处理文件则是基于一个个字符为 ...

  8. Java 字符流与基本IO

    字符流基类 java.io包中专门用于字符流处理的类,是以 Reader 和 Writer 为基础派生的一系列类.字符流以字符为单位,根据码表映射字符,一次可能读多个字节,只能处理字符类型的数据.Re ...

  9. java字符流实现文件间的内容复制

    package com.io.demo1; import java.io.FileReader; import java.io.FileWriter; public class TestFileSTr ...

  10. java 字符流 字节流

    java对文本文档进行操作(拷贝.显示)出现乱码一般来说,可以从两个方面入手. 1.文本文件本身的编码格式. 2.java代码中处理文本文件的编码格式. 这里要注意的一点是,我们可以看出copyFil ...

随机推荐

  1. Win10下设置GOPATH系统变量,查看go env没有变化

    前言 最近在学习go语言,下载了golang安装包安装之后,使用go env查看环境变量,发现GOPATH已经指向默认的目录了 按照安装手册去系统变量设置了一下GOPATH,指向自定义目录 再来运行一 ...

  2. CentOS7 下 swap 分区的创建、删除及相关配置

    一般我们在购买云服务器(例如:阿里云ECS.腾讯云服务器)的时候,选择 CentOS 7 系统之后,登录系统,发现 swap 大小为 0(即没有分配). 如果我们想在该 服务器上安装 Oracle 数 ...

  3. docker的run操作

    docker的run到底做了什么操作呢? 它会优先寻找本地的镜像,如果没有就到仓库找,找不到返回错误,查找不到该镜像.能找到就拉这镜像下来,以该镜像为模板生产容器实例运行. 备注:图不是自己画的,截图 ...

  4. CSS语法规范与代码风格

    CSS语法规范与代码风格 1. 语法规范 CSS规则又两个主要的部分构成:选择器+一条或多条声明. 选择器:用于指定CSS样式的HTML标签,花括号内的是设置的具体样式 属性与属性值以键值对的形式出现 ...

  5. JVM 第六篇:极致优化 IDEA 启动速度

    本文内容过于硬核,建议有 Java 相关经验人士阅读. 1. 引言 相信做 Java 开发的同学,对 IDEA 这个工具应该都不陌生,即使不使用 IDEA 做开发,那么对 Eclipse 这个工具应该 ...

  6. vscode设置snippets

    自动添加文件描述信息 "File Comments": { "prefix": "filecomments", "body&quo ...

  7. 【CF1428D】Bouncing Boomerangs 题解

    原题链接 题意简介 毒瘤大模拟 给你一张n*n的图,在图上摆有一些物体.从每一列的底端往上扔回旋镖,每镖中一个东西,回旋镖就会向右转九十度.现在我们知道从每列i底端往上镖时撞上的物体个数ai,试构造出 ...

  8. go xpath

    package main import ( "fmt" "github.com/antchfx/htmlquery" "net/http" ...

  9. canal快速启动

    QuickStart  https://github.com/alibaba/canal/wiki/QuickStart        准备 对于自建 MySQL , 需要先开启 Binlog 写入功 ...

  10. centos8安装fastdfs6.06集群方式二之:tracker的安装/配置/运行

    一,查看本地centos的版本 [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) 说 ...