【输入流中的字符流和字节流】

【InputStream和Reader】

InputStream和Reader是所有输入流的抽象基类,本身不能实例化,但是他们是所有输入流的模板。

[ InputStream包含的方法 ]

int read()       从输入流中读去单个字节,返回读取的字节数。(字节类型转换成int类型)

int read( byte[] b )     从输入流中最多读取b.length个字节的数据,将数据存储在字节数组b中,返回读取的字节数。

int read( byte[] b, int off, int len )   从输入流中最多读取len个字节的数据,并将其存储在字节数组b中,并不是从数组起点开始,而是从off位置开始,返回读取的字节数。

[ Reader包含的方法 ]

int read()       从输入流中读去单个字符,返回读取的字符数。(字符类型转换成int类型)

int read( char[] c )     从输入流中最多读取c.length个字符的数据,将数据存储在字符数组c中,返回读取的字符数。

int read( char[] c, int off, int len )   从输入流中最多读取len个字符的数据,并将其存储在字符数组c中,并不是从数组起点开始,而是从off位置开始,返回读取的字符数。

【测试1:FileInputStream读取文件中的数据,并打印到控制台】

package com.Higgin.part3;
import java.io.FileInputStream; public class FileInputStreamDemo { public static void main(String[] args) throws Exception {
FileInputStream fis=new FileInputStream("c://testJavaIO/aaa.java"); //创建字节输入流
byte[] bbuf=new byte[]; //创建一个字节长度为1024的缓存,即"竹筒"
int hasRead=; //用于保存每次实际读取的字节数
int i=;
while((hasRead=fis.read(bbuf))>){ //如果取得数据为-1或0,说明上一次已经取完所有数据
System.out.println(new String(bbuf,0,hasRead));
System.out.println("i------"+i);
i++;
}
fis.close();//关闭文件输入流
}
}

【想要提取的文件中的内容】

【运行结果】

【将上面代码中的缓存数组的长度修改为80,即改为" byte[] bbuf=new byte[]; "后的运行结果】

【测试2:FileReader读取文件中的数据,并打印到控制台】

package com.Higgin.part3;
import java.io.FileReader;
import java.io.IOException; public class FileReadDemo {
public static void main(String[] args) throws IOException {
FileReader fr=new FileReader("c://testJavaIO/aaa.java");
char[] cbuf=new char[]; //创建一个字符长度为32的缓存,即"竹筒"
int hasRead=; //用于保存实际读取的字符数
int i=;
while((hasRead=fr.read(cbuf))>){
System.out.println(new String(cbuf,0,hasRead)); //每次取得缓存中的字符数组cbuf,将字符数组转化成字符串输出
System.out.println("i------"+i);
i++;
}
fr.close();
}
}

【运行结果】

IO流04_InputStream和Reader输入流的更多相关文章

  1. 黑马程序员_<<IO流基本操作(Writer,Reader)>>

    --------------------ASP.Net+Android+IOS开发..Net培训.期待与您交流! -------------------- 1.概述 硬盘之间的文件的传输,硬盘中文件的 ...

  2. Java基础知识强化之IO流笔记61:输入流 和 输出流 使用总结

    1. 结构: 字节流:InputStream,OutputStream 字符流:Reader,Writer 2. 字符流 和 字节流: (1)Reader:读取字符流的抽象类 BufferedRead ...

  3. java基础49 IO流技术(对象输入流/对象输出流)

    1.对象输入输出流 对象注意作用是用于写对象信息与读取对象信息 1.对象输出流:ObjectOutputStream    2.对象输入流:ObjectInputStream 2.对象输入输出流的步骤 ...

  4. 【JAVA IO流之字符流】

    一.概述. java对数据的操作是通过流的方式.java用于操作流的对象都在IO包中.流按照操作数据不同分为两种,字节流和字符流.流按照流向分为输入流,输出流. 输入输出的“入”和“出”是相当于内存来 ...

  5. Java中IO流中所涉及到的各类方法介绍

    IO流之字节流 (1)IO用于在设备间进行数据传输的操作 (2)分类: A:流向 输入流 读取数据 输出流 写出数据 B:数据类型 字节流 字节输入流 字节输出流 字符流 字符输入流 字符输出流 注意 ...

  6. IO流回顾与总结第一篇之字节流与字符流的操作。。。。。

    一.引言 趁着年后的这点时间,抓紧点时间回顾下javase中的IO流,以往都是用到那些常用的IO类,这次来个全点的,有不对的地方还请大神指正一下,做到坚持写博的习惯来...... 回归正题,IO流顾名 ...

  7. JavaSE | IO流

    java.io.File类(文件和目录路径名的抽象表示形式) 如果希望在程序中操作文件和目录都可以通过File类来完成,File类能新建.删除.重命名文件和目录. File类是文件或目录的路径,而不是 ...

  8. java IO流——字符流

    一.概述 流的概念: 流是个抽象的概念,是对输入输出设备的抽象,Java程序中,对于数据的输入/输出操作都是以“流”的方式进行.设备可以是文件,网络,内存等. 流具有方向性,至于是输入流还是输出流则是 ...

  9. IO流的Properties集合,序列化流与反序列化流,打印流及commons-IO

    内容介绍 Properties集合 序列化流与反序列化流 打印流 commons-IO Properties类 Properties类介绍 Properties 类表示了一个持久的属性集.Proper ...

随机推荐

  1. 【Stage3D学习笔记续】真正的3D世界(四):空间大战雏形

    前面几个星期抽空用Starling做了一个打飞机的小游戏(所以没有接着看书了),准备面试时用的,结果面试还是没过%>_<%...这个游戏打算过几天全部开源了 那么接下来打算这周把<S ...

  2. 山东理工大学ACM平台题答案关于C语言 1543 Egypt

    Egypt Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述   A long time ago, the Egyptians fi ...

  3. 多线程操作Coredata(转)

    第一步:搭建 Core Data 多线程环境这个问题首先要解决的是搭建 Core Data 多线程环境.Core Data 对并发模式的支持非常完备,NSManagedObjectContext 的指 ...

  4. 解决下载Android Build-tools 19.1.0失败

    准备从Eclipse转到Android Studio了.今天尝试Android Studio的时候,被它提醒我SDK的Android Build-tools版本过低,需要升级. 于是打开Android ...

  5. cocos2d-x 开发时的注意点

    转自:http://cjhworld.blog.163.com/blog/static/20707803620132693629307/ 1.       按照Cocos2d的编程风格,尽量少用构造函 ...

  6. 对PostgreSQL xmax的理解

    xmax The identity (transaction ID) of the deleting transaction, or zero for an undeleted row version ...

  7. WaterWave

    WaterWave.rar

  8. HDU 3157 Crazy Circuits(有源汇上下界最小流)

    HDU 3157 Crazy Circuits 题目链接 题意:一个电路板,上面有N个接线柱(标号1~N),还有两个电源接线柱 + -.给出一些线路,每一个线路有一个下限值求一个能够让全部部件正常工作 ...

  9. java基础复习之对于String对象,能够使用“=”赋值,也能够使用newkeyword赋值,两种方式有什么差别?

    String类型是实际工作中经经常使用到的类型,从数据类型上划分,String是一个引用类型,是API中定义的一个类.所以String类型的对象能够用new创建,比如String name=new S ...

  10. careercup-中等难度 17.11

    17.11 给定rand5(),实现一个方法rand7().也即,给定一个产生0到4(含)随机数的方法,编写一个产生0到6(含)随机数的方法. 解法: 这个函数要正确实现,则返回0到6之间的值,每个值 ...