Java基础知识强化之IO流笔记29:BufferedOutputStream / BufferedInputStream(字节缓冲区流) 之BufferedInputStream读取数据

1. BufferedInputStream读取数据

BufferedInputStream构造方法,如下:

构造方法摘要
BufferedInputStream(InputStream in)
          创建一个 BufferedInputStream 并保存其参数,即输入流
in,以便将来使用。
BufferedInputStream(InputStream in,
int size)

          创建具有指定缓冲区大小的 BufferedInputStream
并保存其参数,即输入流 in,以便将来使用。

2. 代码示例:

 1 package cn.itcast_05;
 2
 3 import java.io.BufferedInputStream;
 4 import java.io.FileInputStream;
 5 import java.io.IOException;
 6
 7 /*
 8  * 注意:虽然我们有两种方式可以读取,但是,请注意,这两种方式针对同一个对象在一个代码中只能使用一个。
 9  */
10 public class BufferedInputStreamDemo {
11     public static void main(String[] args) throws IOException {
12         // BufferedInputStream(InputStream in)
13         BufferedInputStream bis = new BufferedInputStream(new FileInputStream(
14                 "bos.txt"));
15
16         // 读取数据
17         // int by = 0;
18         // while ((by = bis.read()) != -1) {
19         // System.out.print((char) by);
20         // }
21         // System.out.println("---------");
22
23         byte[] bys = new byte[1024];
24         int len = 0;
25         while ((len = bis.read(bys)) != -1) {
26             System.out.print(new String(bys, 0, len));
27         }
28
29         // 释放资源
30         bis.close();
31     }
32 }

运行效果,如下:

时间: 2024-10-25 21:30:43

Java基础知识强化之IO流笔记29:BufferedOutputStream / BufferedInputStream(字节缓冲区流) 之BufferedInputStream读取数据的相关文章

Java基础知识强化之集合框架笔记36:List练习之键盘录入多个数据在控制台输出最大值

1. 键盘录入多个数据,以0结束,要求在控制台输出这多个数据中的最大值 分析: •  创建键盘录入数据对象 •  键盘录入多个数据,我们不知道多少个,所以用集合存储 •  以0结束,这个简单,只要键盘录入的数据是0,我就不继续录入数据了 •  把集合转成数组 •  对数组排序 •  获取该数组中的最大索引的值 2. 代码实现: 1 1. package cn.itcast_03; 2 3 import java.util.ArrayList; 4 import java.util.Arrays;

Java基础知识强化之集合框架笔记29:使用LinkedList实现栈数据结构的集合代码(面试题)

1. 请用LinkedList模拟栈数据结构的集合,并测试:  题目的意思是:     你自己的定义一个集合类,在这个集合类内部可以使用LinkedList模拟,使用LinkedList功能方法封装成自己的方法. 2. 代码解析: (1)定义自己集合类MyStack,模拟栈数据结构( 先进后出 ) 1 package cn.itcast_05; 2 3 import java.util.LinkedList; 4 5 /** 6 * 自定义的栈集合 7 * 8 * @author Mr He 9

Java基础知识强化之IO流笔记28:BufferedOutputStream / BufferedInputStream(字节缓冲区流) 之BufferedOutputStream写出数据

1. BufferedOutputStream / BufferedInputStream(字节缓冲区流)的概述 通过定义数组的方式确实比以前一次读取一个字节的方式快很多,所以,看来有一个缓冲区还是非常好的.既然是这样的话,那么,java开始在设计的时候,它也考虑到了这个问题,就专门提供了带缓冲区的字节类.这种类被称为:缓冲区类(高效类) 写数据:BufferedOutputStream 读数据:BufferedInputStream 构造方法可以指定缓冲区的大小,但是我们一般用不上,因为默认缓

Java基础知识强化之IO流笔记16:IO流的概述和分类

1. IO流的分类   流向:     (1)输入流:读取数据到内存     (2)输出流:写入数据到硬盘(磁盘)   操作的数据类型:    (1)字节流:操作的数据是字节                            输入流                            输出流        (2)字符流:操作的数据是字符,为了方便操作文本数据,Java就提供了字符流.                            输入流                      

Java基础知识强化之IO流笔记35:InputStreamReader/OutputStreamWriter 复制文本文件案例01

1. 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中. 数据源:  a.txt -- 读取数据 -- 字符转换流 -- InputStreamReader 目的地:  b.txt -- 写出数据 -- 字符转换流 -- OutputStreamWriter InputStreamReader/OutputStreamWriter不仅是转换流(将字节流转换为字符流),也是字符流Reader/Writer的具体实现子类. 2.代码示例: 1 package cn.itcas

Java基础知识强化之IO流笔记63:随机访问流RandomAccessFile

1. 随机访问流RandomAccessFile RandomAccessFile类不属于流,是Object类的子类.但它融合了InputStream和OutputStream的功能.支持对随机访问文件的读取和写入. RandomAccessFile的构造方法: 构造方法摘要 RandomAccessFile(File file, String mode)           创建从中读取和向其中写入(可选)的随机访问文件流,该文件由 File 参数指定. RandomAccessFile(St

Java基础知识强化之IO流笔记18:FileOutputStream写入数据

1. 创建字节输出流对象,做了几件事情: (1)调用系统功能去创建文件(2)创建fos对象(3)把fos对象指向这个文件 2. 代码示例: 1 package com.himi.fileoutputstream; 2 3 import java.io.File; 4 import java.io.FileNotFoundException; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 8 /* 9 * 创建

Java基础知识强化之IO流笔记37:字符流缓冲流之BufferedWriter / BufferedReader使用

1. 字符流缓冲流: 字符流为了高效读写,也提供了对应的字符缓冲流. BufferedWriter:字符缓冲输出流 BufferedReader:字符缓冲输入流 2. BufferedWriter使用:     将文本写入字符输出流,缓冲各个字符,从而提供单个字符.数组和字符串的高效写入.可以指定缓冲区的大小,或者接受默认的大小.在大多数情况下,默认值就足够大了. (1)BufferedWriter的构造方法: 构造方法摘要 BufferedWriter(Writer out)         

Java基础知识强化之IO流笔记62:三种方式实现键盘录入

1. 三种方式实现键盘录入     System.in 标准输入流.是从键盘获取数据的 键盘录入数据三种方式:  A:main方法的args接收参数.  java HelloWorld hello world java  B:Scanner(JDK5以后的)  Scanner sc = new Scanner(System.in);  String s = sc.nextLine();  int x = sc.nextInt()  C:通过字符缓冲流包装标准输入流实现  BufferedRead

Java基础知识强化之IO流笔记65:序列化流 和 反序列化流

1. 什么是 序列化 和 反序列化 ?     序列化 (Serialization):将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象.一般的格式是与平台无关的二进制流,可以将这种二进制流持久保存在磁盘上,也可以通过网络将这种二进制流传输到另一个网络结点.  反序列化(Anti Serialization ):是指把这种二进制流数据还原成对象. 2. 序列化流 和 反序列化