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 ...
随机推荐
- Python实现好友生日提醒
Python实现好友生日提醒
- 视频+图文教程 | Java之安装JDK与环境配置
演示所用软件JDK 8与Eclipse(Java开发工具)软件下载链接: 链接:https://pan.baidu.com/s/1Vg9ulrQH8WlGRAE89Y02UA提取码:swwl 视频介绍 ...
- 初始python的类
面向对象 一.面向对象 优点: 面向对象编程:是一类相似功能函数的集合,使你的代码更清晰化,更合理化. 面向对象,要拥有上帝的视角看问题,类其实就是一个公共模板,对象就从具体的模板实例化出来 类:就是 ...
- vim插件配置
OS:kali linux tool:vim 上图: 0x00 需要用到的插件及其下载地址 左边的一栏显示文件目录结构的用到的插件为 NERDTree 下载地址:https://github.com/ ...
- package wang/test is not in GOROOT (/usr/local/go/src/wang/test)
如果要用 gopath模式 引入包 从src目录下开始引入 需要关闭 go mod 模式 export GO111MODULE=off 如果使用go mod 模式 export GO111MODULE ...
- arcgis activeX 安全提示消除办法
点击任何的一个ArcToolBox 工具,光标落在参数输入框时,会提示 "在此页面上的ActiveX控件和本页上的其他部分的交互可能不安全.你想允许这种交互操作吗? " 消除办法 ...
- Linux命令之命令别名
对于经常执行的较长的命令,可以将其定义成较短的别名,以方便执行 显示当前shell进程所有可用的命令别名 [04:33:43 root@C8[ ~]#alias alias cp='cp -i' al ...
- Redis入门之认识redis(一)
第1章 非关系型数据库 1.1 NoSQL数据库概述 1) NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",泛指非关系型的数据库. NoSQL 不 ...
- 【转】Centos7系统下忘记了root管理员账号密码的解决方式
哎,事情的起因就是脑子背了,曾经还手贱把root密码改了,导致普通账户改不回管理员账号了,然而,这次是百毒"救"了我,最终完美修改了root密码,好文章特地转载过来了,侵权删. 原 ...
- 深度学习四从循环神经网络入手学习LSTM及GRU
循环神经网络 简介 循环神经网络(Recurrent Neural Networks, RNN) 是一类用于处理序列数据的神经网络.之前的说的卷积神经网络是专门用于处理网格化数据(例如一个图像)的神经 ...