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

【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. 【STL源码学习】STL算法学习之四

    排序算法是STL算法中相当常用的一个类别,包括部分排序和全部排序算法,依据效率和应用场景进行选择. 明细: sort 函数原型: template <class RandomAccessIter ...

  2. iOS 9 学习系列:UIStack View (转载)

    作者:Nathan_Bao 地址:http://www.jianshu.com/p/1991e6c2881a 在 iOS9 中,Apple 引入了 UIStackView,他让你的应用可以通过简单的方 ...

  3. Struts数据效验

    表单数据的验证: 前台验证:主要是通过JS验证, 表达数据是否合法! 后台验证:通过后台java代码进行验证! Struts也提供了数据效验的方式! Struts数据效验, 通过拦截器完成: < ...

  4. hdu1754线段树维护区间最大值

    #include <iostream> #include <cstdio> using namespace std; #define MAXN 200005 int N,M; ...

  5. Android动画Animation之Tween用代码实现动画

    透明度动画.旋转动画.尺寸伸缩动画.移动动画 package com.javen.tween; import android.annotation.SuppressLint; import andro ...

  6. java并行调度框架封装及演示样例

    參考资料:  阿里巴巴开源项目 CobarClient  源代码实现. 分享作者:闫建忠 分享时间:2014年5月7日 ---------------------------------------- ...

  7. 安卓模拟器Android SDK Manager 无法获取SDK列表的解决办法

    1.打开运行Android SDK Manager ,Tool菜单,选择Options,打开设置菜单,勾选“Force https://...sources to be fetched using h ...

  8. android学习日记02--Activity简介

    一.Activity活动 学习Android,第一个都会接触Activity滴,Activity表示一个用户界面,是Android应用程序的入口,可以同时有多个界面,但只会显示栈顶的界面. Activ ...

  9. [Effective C++ --014]在资源管理类中小心copying行为

    第一节 <背景> 条款13中讲到“资源取得的时机便是初始化时机”并由此引出“以对象管理资源”的概念.通常情况下使用std中的auto_ptr(智能指针)和tr1::shared_ptr(引 ...

  10. Java基础知识强化之IO流笔记64:合并流SequenceInputStream

    1. SequenceInputStream合并流的概述: SequenceInputStream类可以将多个输入流串联在一起,合并为一个输入流,因此,该流也被称为合并流.   2. Sequence ...