Java—字符流
一、字符流
字符流概述:
在操作过程中字节流可以操作所有数据,操作的文件中有中文字符,并且需要对
中文字符做出处理
二、字符编码表
文字——>(数字):编码。"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—字符流的更多相关文章
- Java 字符流实现文件读写操作(FileReader-FileWriter)
Java 字符流实现文件读写操作(FileReader-FileWriter) 备注:字符流效率高,但是没有字节流底层 字节流地址:http://pengyan5945.iteye.com/blog/ ...
- java字符流操作flush()方法及其注意事项
java字符流操作flush()方法及其注意事项 flush()方法介绍 查阅文档可以发现,IO流中每一个类都实现了Closeable接口,它们进行资源操作之后都需要执行close()方法将流关闭 ...
- [Java] 字符流 Writer,输出字符数据PrintWriter
package test.stream; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.Fi ...
- [Java] 字符流Reader,读取字符数据
package test.stream; import java.io.BufferedReader; import java.io.FileNotFoundException; import jav ...
- Java字符流和字节流对文件操作
记得当初自己刚开始学习Java的时候,对Java的IO流这一块特别不明白,所以写了这篇随笔希望能对刚开始学习Java的人有所帮助,也方便以后自己查询.Java的IO流分为字符流(Reader,Writ ...
- Java 字符流操作
上篇文章Java 字节流操作介绍了java中基本的字节流操作,但是我们常常对于字符操作,如果使用字节流来实现输入输出就显得麻烦,我们可以使用字符流来实现对我们看得见的字符char进行操作,主要内容如下 ...
- Java 字符流文件读写
上篇文章,我们介绍了 Java 的文件字节流框架中的相关内容,而我们本篇文章将着重于文件字符流的相关内容. 首先需要明确一点的是,字节流处理文件的时候是基于字节的,而字符流处理文件则是基于一个个字符为 ...
- Java 字符流与基本IO
字符流基类 java.io包中专门用于字符流处理的类,是以 Reader 和 Writer 为基础派生的一系列类.字符流以字符为单位,根据码表映射字符,一次可能读多个字节,只能处理字符类型的数据.Re ...
- java字符流实现文件间的内容复制
package com.io.demo1; import java.io.FileReader; import java.io.FileWriter; public class TestFileSTr ...
- java 字符流 字节流
java对文本文档进行操作(拷贝.显示)出现乱码一般来说,可以从两个方面入手. 1.文本文件本身的编码格式. 2.java代码中处理文本文件的编码格式. 这里要注意的一点是,我们可以看出copyFil ...
随机推荐
- MySQL 之 innodb 日志管理 -- 1. 基本日志文件
1.基本日志文件分类 错误日志(error log) 慢查询日志日志(slow query log) 二进制日志(binlog) 查询日志(general log) 2.错误日志 主要包括mysql的 ...
- mycat的privileges标签
参考https://blog.csdn.net/tornadojava/article/details/54948662 privileges标签 对用户的 schema以及表进行精细化的DML权限控 ...
- C++ 构造函数、拷贝构造函数、赋值运算符
<C++ Primer Plus> 12.1 动态内存和类 12.1.1 复习示例和静态类成员 不能在类声明中初始化静态成员变量,这是因为声明描述了如何分配内存,但并不分配内存 如果在头文 ...
- 多测师讲解python _函数中变量_高级讲师肖sir
定义的函数内部的变量名如果是第一次出现, 且在=符号前,那么就可以认为是 被定义为局部变量.在这种情况下,不论全局变量中是否用到该变量名,函数中 使用的都是局部变量.例如: num=100 #全局变量 ...
- spring-security-结合JWT的简单demo
spring-security-demo 前言:本来是想尽量简单简单点的写一个demo的,但是spring-security实在是内容有点多,写着写着看起来就没那么简单了,想入门spring-secu ...
- kinaba 安装踩坑: FATAL Error: [elasticsearch.url]: definition for this key is missing 转
安装 https://www.jianshu.com/p/875457cb8da6 操作系统:Linux kibana 版本: 7.4.0 1. 在/etc/yum.repos.d/ 下新建 ...
- linux时间校准 设置时间为上海时区
[root@localhost log]# rm -f /etc/localtime [root@localhost log]# cp /usr/share/zoneinfo/Asia/Shang ...
- linux(centos8):用sort对文本内容排序
一,sort的用途 1,作用: sort命令用于将文本文件内容加以排序. 它能够以行为单位来排序 2,sort常与uniq搭配使用,原因: 用uniq命令去重时, 需要相同的每行位置相邻才能生效, 所 ...
- Shell脚本学习指南笔记(一)
脚本语言通常是解释型的,这类程序的运行.是由解释器读入程序代码,并将其转换成内部的形式, 再执行,解释器本身是一般的编译型程序. 第一行的开头处使用#!这两个字符,当内核扫描到改行的其余部分,看是否存 ...
- salesforce零基础学习(九十七)Big Object
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.224.0.bigobjects.meta/bigobjects/async_query ...