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 ...
随机推荐
- 多测师讲解——python002.2练习题
# # 作业:第二天# ## # 1.求出1 / 1 + 1 / 3 + 1 / 5--+1 / 99的和 (1分之一+1分之三+1分支5....)# # 2.用循环语句,计算2 - 10之间整数的循 ...
- python练习三角形,99乘法
#方案一:# result=0# #列# for i in range(1,10):# #行# for j in range(1,i+1):# result=i*j# print('%d*%d=%d' ...
- 是时候更新手里的武器了—Jetpack最全简析
前言 Android Jetpack想必大家都耳熟能详了,Android KTX,LiveData,Room等等一系列库都是出自 Jetpack.那么 Jetpack到底是什么?又包含哪些你还没用过的 ...
- JVM系列【6】GC与调优5-日志分析
JVM系列笔记目录 虚拟机的基础概念 class文件结构 class文件加载过程 jvm内存模型 JVM常用指令 GC与调优 主要内容 分析PS.CMS.G1的回收日志,目标使大概能读懂GC日志. 测 ...
- spring boot:多个filter/多个interceptor/多个aop时设置调用的先后顺序(spring boot 2.3.1)
一,filter/interceptor/aop生效的先后顺序? 1,filter即过滤器,基于servlet容器,处于最外层, 所以它会最先起作用,最后才停止 说明:filter对所有访问到serv ...
- linux(centos8):用tr替换或删除字符
一,tr命令的用途 tr命令可以替换或删除文件中的字符 它从标准输入设备读取数据, 处理完成将结果输出到标准输出设备 说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnbl ...
- C# 采用Basic Auth传递Post或者GET 数据
摘自:http://www.cnblogs.com/starcrm/p/4837971.html public class JiraApi{private string m_Username;priv ...
- 51nod 最大M子段和系列(1052、1053、1115)
51nod1052 数据量小,可使用O(N*M)的DPAC,递推公式: dp[i][j]=max(dp[i-1][j-1], dp[i][j-1])+a[j]; dp[i][j]表示前j个数取 i 段 ...
- 503. 下一个更大元素 II
503. 下一个更大元素 II 给定一个循环数组(最后一个元素的下一个元素是数组的第一个元素),输出每个元素的下一个更大元素.数字 x 的下一个更大的元素是按数组遍历顺序,这个数字之后的第一个比它更大 ...
- CorelDRAW x4 提示非法软件产品被禁用解决方法教程
偶尔翻开移动硬盘,找到这货,CorelDraw X4简体中文正式版.网上现在比较难下载得到了,X4是我最常用的一个.现在把它分享出来,有需要的可以去下载使用. CDR全名CorelDRAW ,是加拿大 ...