字符流和字节流的区别 拿一下上一篇文章的例子: 1 public static void main(String[] args) throws Exception 2 { 3 File file = new File("D:/writer.txt"); 4 Writer out = new FileWriter(file); 5 // 声明一个String类型对象 6 String str = "Hello World!!!"; 7 out.write(str);…
字符流和字节流的区别 拿一下上一篇文章的例子: public static void main(String[] args) throws Exception { File file = new File("D:/writer.txt"); Writer out = new FileWriter(file); // 声明一个String类型对象 String str = "Hello World!!!"; out.write(str); out.close(); /…
一.字符流和字节流的区别 拿一下上一篇文章的例子: 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…
Java Io 字符流包含: 1. InputStreamReader  它是由byte流解析为char流,并且按照给定的编码解析. 2. OutputStreamWrite  它是char流到byte流的转换,并且按照给定的编码处理. 事例代码如下: package com.dcz.io; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.In…
InputStream是字节流,InputStreamReader将字节流转成字符流,BufferedReader将字符流转成字符缓冲,开始读字符. 1.InputStream.OutputStream 处理字节流的抽象类 InputStream 是字节输入流的所有类的超类,一般我们使用它的子类,如FileInputStream等. OutputStream是字节输出流的所有类的超类,一般我们使用它的子类,如FileOutputStream等. 2.InputStreamReader  Outp…
作者: Jakob Jenkov  译者: 李璟(jlee381344197@gmail.com) 本章节将简要介绍缓冲与过滤相关的reader和writer,主要涉及BufferedReader.BufferedWriter.FilterReader.FilterWriter. BufferedReader 原文链接 BufferedReader能为字符输入流提供缓冲区,可以提高许多IO处理的速度.你可以一次读取一大块的数据,而不需要每次从网络或者磁盘中一次读取一个字节.特别是在访问大量磁盘数…
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个"流动的方向",通常可以从中读入一个字节序列的对象被称为输入流:能够向其写入一个字节序列的对象被称为输出流. 2. 字节流 Java中的字节流处理的最基本单位为单个字节,它通常用来处理二进制数据.Java中最基本的两个字节流类是InputStream和OutputStream,它们分别代表了组基本的输入字节流和输出字节流.Inpu…
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序列的对象被称为输入流:能够向其写入一个字节序列的对象被称为输出流. 2. 字节流 Java中的字节流处理的最基本单位为单个字节,它通常用来处理二进制数据.Java中最基本的两个字节流类是InputStream和OutputStream,它们分别代表了组基本的输入字节流和输出字节流.InputStre…
作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本章节将简要介绍管道与字符数组相关的reader和writer,主要涉及PipedReader.PipedWriter.CharArrayReader.CharArrayWriter. PipedReader 原文链接 PipedReader能够从管道中读取字符流.与PipedInputStream类似,不同的是PipedReader读取的是字符而非字节.换句话说,PipedReader用于读取管道…
不多说,直接上干货! 把提高效率的动作,封装成一个对象.即把缓冲区封装成一个对象. 就是在一个类里封装一个数组,能对流锁操作数据进行缓存. 什么是字符流缓冲区? 善于使用字符流缓冲区,减轻负担,提高下效率. 其实啊,无非是将源中数据,存储到自定义数组里,进行缓存.并对数组操作,从而提高效率. 即BufferedReader 比 FileReader要增强.   BufferedWriter 比 FileWriter要增强. 什么情况下需要使用字符流缓冲区? 先从一个例子,来由浅入深的 为了提高写…
字符流处理的单元为2个字节的Unicode字符,分别操作字符.字符数组或字符串,而字节流处理单元为1个字节,操作字节和字节数组.所以字符流是由Java虚拟机将字节转化为2个字节的Unicode字符为单位的字符而成的,所以它对多国语言支持性比较好!如果是音频文件.图片.歌曲,就用字节流好点,如果是关系到中文(文本)的,用字符流好点. 所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的字符而是先把字符编码成字节,再储存这些字节到磁盘.在读取文件(特别是文本文件)时,也是一个字节一…
最近在学习Java,所以就总结一篇文件字节流和字符流的输入和输出. 总的来说,IO流分类如下: 输入输出方向:     输入流(从外设读取到内存)和输出流(从内存输出到外设) 数据的操作方式: 字节流和字符流 其中,字符流的由来:字节流读取文字字节数据后,不直接操作,而是先查指定的编码表(为什么是指定的?因为不同的国家制定的编码表不一样)获取对应的文字,再对这个文字进行操作.简单说:字符流=字节流+编码表 字节流和字符流的区别:字节流不仅可以操作字符,还可以操作其他媒体文件 来张形象的图片: J…
package test_demo.fileoper; import java.io.*; /* * 字符输入输出流操作,复制文件 * 使用缓冲流扩展,逐行复制 * */ public class FileReadWriteOper { public static void main(String args[]) { //字符流输入流 FileReader fr = null; //字符流输出流 FileWriter fw = null; //缓冲输入流 BufferedReader br =…
1.字符编码(Character encoding)和编码集(Character set) 字符编码(Character encoding)是将字符转为字节或字节数组的过程. 字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,常见字符集有:ASCII字符集.GB2312字符集.GB18030字符集.Unicode字符集 等. 计算机要准确的识别和存储各种文字,就需要进行字符编码.中文文字数目大,而且还分为简体中文和繁体中文,而计算机最初是按英语单…
字符流 * 字符流是可以直接读写字符的IO流 * 字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写出.    FileReader * FileReader类的read()方法可以按照字符大小读取*   FileReader fr = new FileReader("aaa.txt");    //创建输入流对象,关联aaa.txt  int ch;  while((ch = fr.read()) != -1) {       //将读…
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序列的对象被称为输入流:能够向其写入一个字节序列的对象被称为输出流. 2. 字节流 Java中的字节流处理的最基本单位为单个字节,它通常用来处理二进制数据.Java中最基本的两个字节流类是InputStream和OutputStream,它们分别代表了组基本的输入字节流和输出字节流.InputStre…
Java中的IO流,即为输入输出流.所谓输入输出流,都是相对于程序而言,程序就是这个参照物.一张图看懂输入输出流: 输入流抽象基类:InputStream,Reader 输出流抽象基类:OutputStream,Writer 输入输出流子类众多,详情见下图: 1.内存流 用来操作内存 ByteArrayInputStream     内存到程序 不需要关闭 不使用内存资源,内存不够建议不用 ByteArrayOutputStream 程序到内存 不需要关闭 不使用内存资源,内存不够建议不用 内存…
字符流读数据 – 按单个字符读取 创建字符流读文件对象: Reader reader = new FileReader("readme.txt"); 调用方法读取数据: int data = reader.read(); // 读取一个字符,返回该字符代表的整数,若到达流的末尾,返回-1 字符流读数据 – 按字符数组读取 创建字符流读文件对象: Reader reader = new FileReader("readme.txt"); 调用方法读取数据: // 读取…
一.字符流 当使用字节读取文本文件时,可能会有一个小问题,就是遇到中文字符时,可能不会显示完整的字符,那是因为一个中文字符可能占用多个字节存储.所以 Java 提供了一些字符类,以字符为单位读写数据,专门用于处理文本文件. 二.字符输入流[Reader] 三.字符输出流[Writer]…
字节流:因为内存中数据都是字节,二进制数据. 字符流:方便处理文本数据.字符流是基于字节流的. ascii 编码表,并且各国都有自己的编码表. unicode码表,世界码表.优化后 utf-8码表. 创建文件,写入文件 代码健壮的书写方式,要做异常处理 已有文件的续写 文件读取(此示例中没有编写异常 控制.真正编程时需要加进去) 操作示例 兼容win 和 linux 的换行符 用   读取操作示例 LineNumberReader 是 一个增强类(装饰类) 获取文件行数(注意写代码时要抛IO异常…
FileWriter字符输出流演示: /* * FiileWriter 字符流的操作 * FileWriter 的构造方法 可传递 File类型 还可以传递String类型 * * 方法 : * write(int c) 传递一个字节 * write(char[] a ) 传递一个字符数组 * write(char[]a , 开始索引 , 传递几个) * write(String s) 传递一个字符串 * * 注意:写完之后一定要刷新缓冲区 不然数据 写入不进 * 对象.flush() * */…
java 字节流与字符流的区别(转载)   字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?   实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如下图所示.   下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流.   范例:使用字节流不关闭执行 import java.io.File; import java.io.FileOutputStre…
字节流和字符流 对于文件必然有读和写的操作,读和写就对应了输入和输出流,流又分成字节和字符流. 1.从对文件的操作来讲,有读和写的操作——也就是输入和输出. 2.从流的流向来讲,有输入和输出之分. 3.从流的内容来讲,有字节和字符之分. 这篇文章先后讲解IO流中的字节流和字符流的输入和输出操作. 一.字节流 1)输入和输出流 首先,字节流要进行读和写,也就是输入和输出,所以它有两个抽象的父类InputStream.OutputStream. InputStream抽象了应用程序读取数据的方式,即…
1.Reader & Writer 当我们初次看见Reader和Writer类时,可能会以为这是两个用来替代InputStream和OutputStreamt的类,但实际上并非如此. 尽管一些原始的"流"类库不再被使用(如果使用它们,则会收到编译器的警告信息),但是InputStream和OutputStreamt在以   面向字节形式的I/O中仍可以提供极有价值的功能,Reader和Writer提供兼容Unicode与面向字符的I/O功能. 有时我们必须把来自于 "…
  标签: outputstreamwriterreader字符file方法 2015-05-14 23:06 469人阅读 评论(0) 收藏 举报  分类: 孙鑫-java基础(16)  I-O(4)  版权声明:本文为博主原创文章,未经博主允许不得转载. 回顾字节流输入输出  Reader和Writer Reader和Writer这两个抽象类主要用来读写字符流.  InputStreamReader是字节流通向字符流的桥梁 BufferedReader提供一个ReadLine()方法  Ou…
java基础之IO流(二)之字符流 字符流,顾名思义,它是以字符为数据处理单元的流对象,那么字符流和字节流之间的关系又是如何呢? 字符流可以理解为是字节流+字符编码集额一种封装与抽象,专门设计用来读写文本文件的. 有的小朋友也会问,字节流称之为万能流,为什么还要设计字符流呢.没错,字节流可以读写任意类型的文件,包括文本文件,对于读取整个文本文件来说,字符流和字节流都可以轻松完成,但是对于某些情况,字节流读取文本文件却相当复杂: 1)一个读取一个字符. 2)一次读取文本文件的一行. 当然这些问题统…
一.输入字符流 1.1.输入字符流体系 ------| Reader:输入字符流的基类(抽象类)  ----------| FileReader:向指定文件读取数据的输入字符流(把硬盘上的数据读取到程序中)  ----------| BufferedReader:缓冲输入字符流.   缓冲输入字符流出现的目的:是为了提高效率和拓展功能,其实内部维护了一个8192长度的字符数组 注意:所有缓冲流都不具备读写文件的能力(比如BufferedReader,他要借助FileReader的读功能来读文件)…
字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢?实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件,如图12-6所示.下面以两个写文件的操作为主进行比较,但是在操作时字节流和字符流的操作完成之后都不关闭输出流.范例:使用字节流不关闭执行 package org.lxh.demo12.byteiodemo; import java.io.File; import java.io.FileOut…
转载: http://www.cnblogs.com/dolphin0520/category/361055.html 字节流与和字符流的使用非常相似,两者除了操作代码上的不同之外,是否还有其他的不同呢? 实际上字节流在操作时本身不会用到缓冲区(内存),是文件本身直接操作的,而字符流在操作时使用了缓冲区,通过缓冲区再操作文件. 范例:使用字节流不关闭执行 public static void main(String[] args) throws Exception { // 异常抛出, 不处理…
1.Java的字节流: InputStream是所有字节输入流的祖先,而OutputStream是所有字节输出流的祖先. 2.Java的字符流: Reader是所有读取字符串输入流的祖先,而writer是所有输出字符串的祖先.InputStream,OutputStream,Reader,writer都是抽象类.所以不能直接new. 未完待续………