021.5 IO流——字符流】的更多相关文章

作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的PushbackReader,LineNumberReader,StreamTokenizer,PrintWriter,StringReader,StringWriter. PushbackReader 原文链接 PushbackReader与PushbackInputStream类似,唯一不同的是PushbackReader处理字符,PushbackInputSt…
Java IO流字符流简介及常用字符流的基本使用 字符流分为输入字符流(Writer)和输出字符流(Reader),这两种字符流及其子类字符流都有自己专门的功能.在编码中我们常用的输出字符流有FileWriter.PrintWriter等,而常用的输入字符流有StringReader.FileReader.BufferedReader和InputStreamReader等等.Writer是用于写入字符流的抽象类.它的子类必须实现的唯一方法是write(char [],int,int),flush…
21.01_IO流(字符流FileReader) 1.字符流是什么 字符流是可以直接读写字符的IO流 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写出. 2.FileReader FileReader类的read()方法可以按照字符大小读取 FileReader fr = new FileReader("aaa.txt"); //创建输入流对象,关联aaa.txt int ch; while((ch = fr.read()) != -…
###21.01_IO流(字符流FileReader) * 1.字符流是什么     * 字符流是可以直接读写字符的IO流     * 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写出.     * 2.FileReader     * FileReader类的read()方法可以按照字符大小读取 *          FileReader fr = new FileReader("aaa.txt");                …
1.字节缓冲流 1.1 字节缓冲流构造方法 字节缓冲流介绍 BufferOutputStream:该类实现缓冲输出流. 通过设置这样的输出流,应用程序可以向底层输出流写 入字节,而不必为写入的每个字节导致底层系统的调用 BufferedInputStream:创建BufferedInputStream将创建一个内部缓冲区数组. 当从流中读取或跳过 字节时,内部缓冲区将根据需要从所包含的输入流中重新填充,一次很多字节 构造方法 方法名 说明 BufferedOutputStream(OutputS…
###############基本功能写 FileWriter fw = new FileWriter("xxx.txt"); fw.write("哈喽"); fw.close(); 读 FileReader fr = new FileReader("xxx.txt"); int ch = 0; while((ch = fr.read()) != -1){ System.out.println((char)ch); } fr.close(); #…
前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字符流可以一个一个字符的读取,也可以一行一行字符的读取. 字符流类型 字符流类型包括Writer和Reader及其子类如图所示 Writer的子类 名称 说明 BufferedWriter 将文本写入字符输出流,缓冲各个字符,从而提供单个字符.数组和字符串的高效写入. CharArrayWriter…
Java程序中,一个字符等于两个字节. Reader 和 Writer 两个就是专门用于操作字符流的类. Writer Writer是一个字符流的抽象类.  它的定义如下: public abstract class Writer implements Appendable, Closeable, Flushable 直接子类 BufferedWriter,  CharArrayWriter,  FilterWriter,  OutputStreamWriter,  PipedWriter, …
IO   Input  Output IO流用来处理设备之间的数据传输. java对数据的操作是通过流来实现的. 流按流向分:输入流,输出流     是相对内存而言的.把硬盘的数据读取到内存中就是输入流. 输入流就是读操作,输出流就是写操作. 流按操作数据分两种:字节流,字符流 字节流对象可以处理所有的数据. 字符流的由来: 字节流读取字节数据后,不直接操作,而是先查指定的编码表,获取对应的文字.在对这个文字进行操作,简单的说就是   字节流+编码表 IO流的四个顶层基类 字节流的两个顶层父类(…
IO流的常用方法: 1: 文件的读取和写入图解: 2:字节流: 读写文件的方法: 一般效率读取: 读取文件:        FileInputStream(); 写数据:            FileOutputStream (); 缓冲区高效率读取: 读取文件:      BufferedInputStream(); 写数据:       BufferedOutputStram (); 字符流: 读取数据:FileReader(); 写数据 : FileWriter(); 缓冲区高效读取:…
2017-11-05 18:34:39 Java中的IO流按数据类型分类分为两种,一是字节流,二是字符流.字符流的出现是为了简化文本数据的读入和写出操作. 如果操作的文件是文本文件,那么使用字符流会大大简化操作,但是如果什么都不知道,就用字节流. 字符流 由于字节流中读取中文不是很方便,所以Java中提供了转换流,所以 字符流 = 字节流 + 编码表(By the way,‘a’=97,‘A’=65,‘0’=48). 字符流也有两个抽象基类:Writer Reader * OutputStrea…
缓冲技术是为了提高数据的读写效率而提出的. (1)字符流的缓冲读 在字符流的缓冲技术中提供了一个newLine()方法,这个方法是跨平台的 在读数据的时候采用读完直接刷新的方式可以保证断电后数据不会丢失 package com.songyan.bufferedwriter; import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException; public class Demo1 { publi…
一.概述 流的概念: 流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行.设备可以是文件,网络,内存等. 流具有方向性,至于是输入流还是输出流则是一个相对的概念,一般以程序为参考,如果数据的流向是程序至设备,我们成为输出流,反之我们称为输入流. 可以将流想象成一个“水流管道”,水流就在这管道中形成了,自然就出现了方向的概念. 当程序需要从某个数据源读入数据的时候,就会开启一个输入流,数据源可以是文件.内存或网络等等.相反地,需要写出数据到某个…
在java.io包里面File类是唯一 一个与文件本身有关的程序处理类,但是File只能够操作文件本身而不能够操作文件的内容,或者说在实际的开发之中IO操作的核心意义在于:输入与输出操作.而对于程序而言,输入与输出可能来自于不同的环境,例如:通过电脑连接服务器上进行浏览的时候,实际上此时客户端发出了一个信息,而后服务器接收到此信息之后进行回应处理. 对于服务器或者是客户端而言实际上传递的就是一种数据流的处理形式,而所谓的数据流指的就是字节数据.而对于这种流的处理形式在java.io包里面提供有两…
什么是字符流 对于文本文件(.txt .java .c .cpp) 使用字符流处理 注意点 读入的文件一定要存在 否则就会报FileNotFoundException 异常的处理 为了保证流资源 一定可以执行关闭操作 要使用try catch finally 来操作 写出的文件如果不存在 会自动创建 实例化FileWriter 处理File参数 还有append参数 append :false 覆盖原有文件 append :true 在原有文件后面追加 示例 package day03; imp…
为什么要使用字符流 当使用字节流读取文本文件时,可能会有一个小问题.就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储.所以Java提供一些字符流类,以字符为单位读写数据,专门用于处理文本文件.   Writer Writer抽象类是表示用于写出字符流的所有类的超类,将指定的字符信息写出到目的地.它定义了字节输出流的基本共性功能方法. void write(int c) 写入单个字符. void write(char[] cbuf) 写入字符数组. abstra…
字符流 计算机并不区分二进制文件与文本文件.所有的文件都是以二进制形式来存储的,因此, 从本质上说,所有的文件都是二进制文件.所以字符流是建立在字节流之上的,它能够提供字符 层次的编码和解码.列如,在写入一个字符时,Java虚拟机会将字符转为文件指定的编码(默认 是系统默认编码),在读取字符时,再将文件指定的编码转化为字符. 常见的码表如下: ASCII:           美国标准信息交换码.用一个字节的7位可以表示. ISO8859-1:   拉丁码表.欧洲码表,用一个字节的8位表示.又称…
一.分类 字节流(不适用于文本) InputStream OutputStream 字符流 Reader Writer 二.字符流 按照字符为单位,英文1-1,中文看是UTF-8编码还是GBK编码 字符输出流(Write) 字符输入流(Reader) 缓冲字符流BufferedReader:方法更多 转换流:InputStreamReader:将字节流转化成字符流 //1.将字节流穿环卫字符流 InputStreamReader isr=new InputStreamReader(new Buf…
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;} th{border: 1px solid gray; padding: 4px; background-color: #DDD;} td{border: 1px solid gray; padding: 4px;} tr:nth-child(2n){background-co…
java的文本(char)是16位无符号整数,是字符的unicode编码(双字节编码). 文件是byte byte byte ... 的数据序列. 文本文件是文本(char)序列按照某种编码方案(uft-8.utf-16be.gbk)序列化为byte的存储结果. 字符流(Reader.Writer)-->操作的是文本.文本文件 1.字符的处理,一次处理一个字符 2.字符的底层仍然是基本的字节序列 3.字符流的基本实现: InputStreamReader是字节流通向字符流的桥梁:它使用指定的 c…
在上一节,介绍了字节流的基本使用,本节介绍一下字符流的使用 Reader: public abstract class Reader implements Readable, Closeable { protected Object lock; private static final int maxSkipBufferSize = 8192; private char[] skipBuffer = null; protected Reader() { this.lock = this; } p…
字符流 字节流提供了处理任何类型输入/输出操作的功能(因为对于计算机而言,一切都是0和1,只需把数据以字节形式表示就够了),但它们不可以直接操作Unicode字符,因为上一篇文章写了,一个Unicode字符占用2个字节,而字节流一次只能操作一个字节.既然Java的口号就是"一次编写.处处运行",那么包含直接的字符输入/输出的支持是必要的.因此就有一些字符输入/输出流,之前已经说明过了,字符流顶层是Reader和Writer这两个抽象类,因此就从这里开始本文. Reader Reader…
一.Reader和Writer 1. 字符流原理 Reader是所有字符输入流的父类而Writer是所有字符输出流的父类.字符流是以字符(char)为单位读写数据的.一次处理一个unicode.字符流都是高级流,其底层都是依靠字节流进行读写数据的,所以底层仍然是基于字节读写数据的.2. 常用方法 Reader的常用方法:int read()读取一个字符,返回的int”值低16”位有效. 其实返回的是char 若返回的是-1 则读取到末尾 int read(char[] chs)从该流中读取一个字…
字符流 只能读写文本文件 Reader 抽象类 字符输出流的父类 Writer 抽象类 字符输出流的父类 字符转换输出流: OutputStreamWriter(OutputStream out):创建使用默认字符编码的 OutputStreamWriter OutputStreamWriter(OutputStream out, String charsetName) :创建使用指定字符集的 OutputStreamWriter 案例1: public class MyTest { publi…
字符流:尽管字节流提供了处理任何类型输入/输出操作的足够功能,它们补鞥呢直接操作Unicode字符.字符流层次结构的顶层是Reader和Writer抽象类.类似于InputStream和OutputStram Unicode使用两个字节来表示一个字符,即一个字符占16位 一.Reader的类层次结构 二.Writer的类层次结构 三.Demo public class StreamTest { public static void main(String[] args) throws Excep…
字符流 字节流提供处理任何类型输入/输出操作的足够功能,但不能直接操作Unicode字符,因而需要字符流. 字符流层次结构的顶层是Reader和Writer抽象类. 实际上,字符流的底层就是字节流. 一.Reader ①   Reader是定义Java的流式字符输入模式的抽象类. ②   Reader抽象类中的方法: a)       public int read(CharBuffer target) throws IOException b)       public int read()…
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.LineNumberReader; import java.nio.Buffer; public class io { public static void main(String[…
public static void main(String[] args) { FileWriter fw = null; try { fw = new FileWriter("/Users/weianlai/demo"); fw.write("这是一个demo"); fw.flush(); } catch (IOException e) { e.printStackTrace(); } finally { if (fw != null) { try { fw.c…
字符是我们能读懂的一些文字和符号,但在计算机中存储的却是我们看不懂的byte 字节,那这就存在关于字符编码解码的问题.所以在学习Io流的字符流前我们先了解些关于编码问题. 一.字符集与字符编码 1.什么要有字符集 我们在计算机屏幕上看到的是实体化的文字,而在计算机存储介质中存放的实际是二进制的比特流.那 么在这两者之间的转换规则就需要一个统一的标准,否则就会出现乱码了现象:小伙伴QQ上传过来的文件,在我们本地打开又乱码了. 于是为了实现转换标准,各种字符集标准就出现了. 2.什么是字符集 简单的…
IO流:IO流用来处理设备之间的数据传输,Java对于流的操作对象都在IO包中将外设中的数据读取到内存中:输入将内存的数写入到外设中:输出 流分为字节流和字符流字符流的由来:其实就是字节流读取文字字节数据后,不直接操作而是先查指定的编码表.获取相应的文字.在对这个文字进行操作,简单地说就是:字节流+编码表 字节流的顶层父类:1.InputStream 2.OutputStream 字符流的两个顶层父类:1.Reader 2.Writer这些体系的子类都以父类名作为后缀而子类名的前缀就是该对象的功…