java 21 - 1 IO流中的字符流概述】的更多相关文章

字节流通过读取一个byte数组的方式可以读取中文的,但是有可能出现小问题,所以,读取中文最好是用字符流. 字符流: 字符流=字节流+编码表. 编码表: 由字符及其对应的数值组成的一张表 编码表介绍: 计算机只能识别二进制数据,早期由来是电信号. 为了方便应用计算机,让它可以识别各个国家的文字. 就将各个国家的文字用数字来表示,并一一对应,形成一张表. ASCII:美国标准信息交换码. 用一个字节的7位可以表示. ISO8859-1:拉丁码表.欧洲码表 用一个字节的8位表示. GB2312:中国的…
接上一篇的字节流,以下主要介绍字符流.字符流和字节流的差别以及文件复制拷贝.在程序中一个字符等于两个字节.而一个汉字占俩个字节(一般有限面试会问:一个char是否能存下一个汉字,答案当然是能了,一个char和一汉字一样都占两个字节).一般用字节流假设定义为奇数个长度是,那么存储汉字时会有乱码问题,Java提供了Reader和Writer两个专门操作字符流的类. 1 Writer 字符输出流 此类是抽象类.需用其子类实现.实现了Closeable,Flushable, Appendable三个接口…
Java IO 转换流 字节转字符流 @author ixenos 字节流 输入字节流:---------| InputStream 所有输入字节流的基类. 抽象类.------------| FileInputStream 读取文件的输入字节流.------------| BufferedInputStream 缓冲输入字节流. 该类内部其实就是维护了一个8kb(8192b)字节数组而已. 该类出现的目的是为了提高读取文件数据的效率. 输出字节流:---------| OutputStream…
一.输出字符流 1.1.输出字符流体系 --------| Writer:输出字符流的基类(抽象类)  ----------| FileWriter:向文件输出数据输出字符流(把程序中的数据写到硬盘中)  ----------| BufferedWriter:缓冲输出字符流    缓冲输出字符流的作用:提高了FileWiter的写数据效率和拓展了FileWiter的功能.内部提供了一个8192长度的字符数组作为缓冲区而已,拓展了FileWiter. 注意:所有缓冲流都不具备读写文件的能力(比如B…
1. 字节流和字符流的概念    1.1 字节流继承于InputStream    OutputStream,    1.2 字符流继承于InputStreamReader    OutputStreamWriter.在java.io包中还有许多其他的流,主要是为了提高性能和使用方便. 2. 字节流与字符流的区别    2.1 要把一片二进制数据数据逐一输出到某个设备中,或者从某个设备中逐一读取一片二进制数据,不管输入输出设备是什么,我们要用统一的方式来完成这些操作,用一种抽象的方式进行描述,这…
标准输入输出流 System类中的两个成员变量: public static final InputStream in "标准"输入流. public static final PrintStream out "标准"输出流. pnputStream is = System.in; printStream ps = System.out; System.out; 标准输出流: 其实从上面就可以看出来了 System.out.println("hellowo…
计算机并不区分二进制文件与文本文件.所有的文件都是以二进制形式来存储的,因此,从本质上说,所有的文件都是二进制文件.所以字符流是建立在字节流之上的,它能够提供字符层次的编码和解码. 常见的码表 ASCII:    美国标准信息交换码.用一个字节的7位可以表示. ISO8859-1:   拉丁码表.欧洲码表,用一个字节的8位表示. GB2312:   英文占一个字节,中文占两个字节.中国的中文编码表. GBK:      中国的中文编码表升级,融合了更多的中文文字符号. Unicode:  国际标…
字符流,读取的文件是字符的时候,有两个基类一个是Reader,一个是Writer这有点拟人的感觉,人直接看懂的是文字 字符流 字节流:读取的是文件中的二进制字节流并不会帮你转换成看的懂得字符 字符流:字符流会把读到的二进制的数据进行对应的编码解码工作. 字符流 = 字节流+编码(解码) 输入字符流Reader 输入字符流的基类 抽象类 |--FileReader 读取文件的输入字符流 FIleReader的用法: 1.找到目标文件 2.建立数据的输入通道 3.读取数据 4.关闭资源 FileWr…
概念        这么庞大的体系里面,常用的就那么几个,我们把它们抽取出来,如下图: Java语言定义了许多类专门负责各种方式的输入或者输出,这些类都被放在java.io包中.其中, 所有输入流类都是抽象类InputStream(字节输入流),或者抽象类Reader(字符输入流)的子类: 而所有输出流都是抽象类OutputStream(字节输出流)或者Writer(字符输出流)的子类. [首先需要明白的是:流是干什么的???(为了永久性的保存数据)   根据数据流向的不同分为输入流和输出流:…
字节流输入字节流:---------| InputStream 所有输入字节流的基类. 抽象类.------------| FileInputStream 读取文件的输入字节流.------------| BufferedInputStream 缓冲输入字节流. 该类内部其实就是维护了一个8kb(8192b)字节数组而已. 该类出现的目的是为了提高读取文件数据的效率. 输出字节流:---------| OutputStream 所有输出字节流的基类. 抽象类.------------| File…
在上一章节中详细介绍集合框架的相关知识,在接下来的几篇文章中将讲述Java中另一个及其重要的知识——IO流,本文主要是讲述IO流的一些基本概念以及字符流的相关应用. IO流 介绍IO流之前先介绍一下什么是IO,IO是input.output的简称,所以所谓的IO流也就是输入输出流,明白了这一点对后面的学习有很大的促进作用. 流向分类 正如干电池有正极与负极一样,流也有方向的区别,我们常用的分类是按照流的流向进行分类, "流"向当前程序的流成为输入流也就是I的一端,"流&quo…
一.字符流和字节流的区别 拿一下上一篇文章的例子: package com.demo.io; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.Reader; import java.io.Writer; public class FileReaderWriterTest { public static void main(String[] args) throws…
一.字符流 字节流提供了处理任何类型输入/输出操作的功能(因为对于计算机而言,一切都是0和1,只需把数据以字节形式表示就够了),但它们不可以直接操作Unicode字符,因为一个Unicode字符占用2个字节,而字节流一次只能操作一个字节.既然Java的口号就是"一次编写.处处运行",那么包含直接的字符输入/输出的支持是必要的.因此就有一些字符输入/输出流,之前已经说明过了,字符流顶层是Reader和Writer这两个抽象类,因此就从这里开始本文. 二.Reader Reader是定义J…
一.输入字符流 1.1.输入字符流体系 ------| Reader:输入字符流的基类(抽象类)  ----------| FileReader:向指定文件读取数据的输入字符流(把硬盘上的数据读取到程序中)  ----------| BufferedReader:缓冲输入字符流.   缓冲输入字符流出现的目的:是为了提高效率和拓展功能,其实内部维护了一个8192长度的字符数组 注意:所有缓冲流都不具备读写文件的能力(比如BufferedReader,他要借助FileReader的读功能来读文件)…
字符流用于处理字符数据的读取和写入,它以字符为单位. 一.Reader类与Writer类 1.Reader类是所有字符输入流的父类,它定义了操作字符输入流的各种方法. 2.Writer类是所有字符输出流的父类,它定义了操作输出流的各种方法. 二.InputStreamReader类与OutputStreamWriter类 1.InputStreamReader是字节流通向字符流的桥梁.它可以根据指定的编码方式,将字节输入流转换为字符输入流. (1)构造方法有两种: InputStreamRead…
1. 流的基本概念 在java.io包里面File类是唯一一个与文件本身有关的程序处理类,但是File只能够操作文件本身而不能操作文件的内容,或者说在实际的开发之中IO操作的核心意义在于:输入与输出操作.输入和输出实质上传递的就是一种数据流的处理形式,数据流指的是字节数据 .而对于这种流的处理形式在java.io包里面提供有两类支持. 字节处理流:OutputStream(输出字节流)InputStream(输入字节流) 字符处理流:Writer(输出字符流)Reader(输入字符流) 流操作的…
打印流 字节流打印流 PrintStream 字符打印流 PrintWriter打印流的特点: A:只有写数据的,没有读取数据.只能操作目的地,不能操作数据源.(只能写入数据到文件中,而不能从文件中提取数据) B:可以操作任意类型的数据. C:如果启动了自动刷新,能够自动刷新. D:该流是可以直接操作文本文件的. 哪些流对象是可以直接操作文本文件的呢?  FileInputStream  FileOutputStream  FileReader  FileWriter  PrintStream…
一:通过字节流操作数据的写入,读出 /** * 通过字节流写入和读出 * @param args */ public static String filePath = "G:" + File.separator + "JAVA" + File.separator + "test" + File.separator + "aaa.txt"; public static void main(String[] args) throw…
java中字符流 字符流:对文本的读取,速度比字节流快 常见的字符流:Reader 和 Writer Reader是InputStreamReader的父类,InputStreamReader是FileReader的父类 FileReader的相关方法: new FileReader(File/String) read:每次读取单个字符,返回该字符,如果到文件末尾返回-1 read(char[]):批量读取多个字符到数组,返回读取到的字符数,如果文件末尾返回-1,可以用new String(ch…
字节缓冲流 //为什么要使用包装流,使用包装流是为了提高读写操作的性能. public class Packing_flowDemo { public static void main(String[] args) throws Exception { File file = new File("file/packing_flow.txt"); //包装流的写法,缓冲区内存大小.1024*8=8192 (byte) // BufferedOutputStream packing = n…
1.字节流 1.1 字节输出流OutputStream-抽象类,表示输出字节流的所有类的超类 (1)void close() 关闭此输出流并释放与此流相关的所有系统资源 (2)void flush() 刷新此输出流并强制写出所有缓冲的输出字节 (3)void write(byte[] b) 将b.length个字节从指定的byte数组写入此输出流 (4)write wirte(byte[] b,int off,int len) 将指定byte数组从偏移量off开始的len个字节写入此输出流 (5…
关于 I/O 的类可以分为四种: 关于字节的操作:InputStream 和 OutPutStream: 关于字符的操作:Writer 和 Reader: 关于磁盘的操作:File: 关于网络的操作:Socket( Socket 类不在 java.io 包中). 在本篇博客中主要讲述前两种 I/O,即字符流与字节流,并会提及磁盘IO.首先我们来看一下字节流与字符流的实现关系,如下图 一.字节流 在字节流的类中,最顶层的是 Inputstream 抽象类和 OutputStream 抽象类,两者定…
一.File类: 在Windows下的路径分隔符(\)和在Linux下的路径分隔符(/)是不一样的,当直接使用绝对路径时,跨平台会报No Such file or diretory异常. File中还有几个与separator类似的静态常量,与系统有关,在编程中应尽量使用. ps:File file = new File("G:"+ File.separator +"demo.txt"); File类是java.io包中唯一一个与文件本身操作有关的类,文件本身操作是…
  第1章 字节流 在前面的学习过程中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现在我们就要开始给文件中写数据,或者读取文件中的数据. 1.1 字节输出流OutputStream OutputStream此抽象类,是表示输出字节流的所有类的超类.操作的数据都是字节,定义了输出字节流的基本共性功能方法. 输出流中定义都是写write方法,如下图: 1.1.1 FileOutputStream类 OutputStream有很多子类,其中子类FileOutputStream可用来写…
IO流之字符流缓冲区: 概念: 流中的缓冲区:是先把程序需要操作的数据保存在内存中,然后我们的程序读写数据的时候,不直接和持久设备之间交互,而改成和内存中的数据进行交互. 缓冲区:它就是临时存储数据,当我们需要操作数据的时候,直接不是面对的是真实保存数据的终端,而是已经把数据缓存起来的那个容器. 字符流缓冲区:是为了高效而设计的.内部维护了一个数组,真正的读写依赖的普通的字符流. 1.BufferedReader类: 常用方法: 字符流缓冲区输入数据步骤: 指定文件位置 创建字符流输入对象 创建…
IO流(Input/Output) 简介: 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作.用来进行输入输出操作的流就称为IO流.换句话说,IO流就是以流的方式进行输入输出. IO技术实际上就是让数据在电脑内存或程序系统和硬件(硬盘,内存卡)之间转换的技术. 分类: 1.按流向 输入流:读取数据,把持久设备的数据读取到内存中. 输出流:写出数据,把内存的数据写出到持久…
文件字符流(FileReader,FileWriter文件的复制) 文件的复制 效率低的方法 注意:字符流需要刷新操作,字节流不需要,只有刷新后才可以将程序中的内容导入到目标文件中 package com.bjsxt.test03; import java.io.*; public class Test { public static void main(String[] args) throws IOException { //1.确定源文件 File f1 = new File("D:\\a…
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http://item.jd.com/12299018.html 上节我们介绍了如何以字节流的方式处理文件,我们提到,对于文本文件,字节流没有编码的概念,不能按行处理,使用不太方便,更适合的是使用字符流,本节就来介绍字符流. 我们首先简要介绍下文本文件的基本概念.与二进制文件的区别.编码.以及字符流和字节流的区别,然后我…
首先需要明确的一点是输入流输出流的输入输出是站在内存的角度看的,读取文件,把文件内容写到内存中,是输入流:写文件,把内存中的数据写到文件中,是输出流. IO操作主要有4个抽象类: 字节输入输出流:InputStream.OutputStream,操作的是字节byte. 字符输入输出流:Reader.Writer,操作的是字符char. 最常用的子类有FileInputStream .FileOutputStream.InputStreamReader.OutputStreamWriter.Fil…
用字符流完成文档的复制: 测试文档: 代码1: package InputOutput; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class CopyFileDemo1 { public static void main(String[] args) throws IOException { // 指定读取的文件位置 String path1 = "E:\\J…