-
- <font size="6"> IO流
- </font>
- <font size="4">一、概念:
- 流:流动、流向,从一端流向另一端,源头与目的地。
- 程序与文件|数据库|网络连接|数组,以程序为中心。
- 二、流的分类
- 1、流向:输入流与输出流
- 2、数据:字节流:二进制,可以以一切文件,包括(doc,图片,文字,音频,视频等等)。
- 字符流:只能处理纯文本
- 3、功能:节点:包裹源头
- 处理:增强功能,提高性能。
- 三、字节流与字符流(重点)与文件
- 1、字节流:
- 1)、输入流:InputStream read(byte[] b) 、read(byte[] b, int off, int len)+close()
- 与源文件FileInputStream
-
- 2)、输出流:OutputStream write(byte[] b) 、write(byte[] b, int off, int len) +flush()+close()
- 与源文件FileOutputStream
- 2、字符流:
- 1)、输入流:Reader read(char[] cbuf) 、read(char[] cbuf, int off, int len) +close()
- 与源文件FileReader
-
- 2)、输出流:Writer write(char[] cbuf) 、write(char[] cbuf, int off, int len) +flush()+close()
- 与源文件FileWriter
- 四、操作
- 1、举例:搬家: --->读取文件
- 1)、关联房子 --->建立与文件的联系
- 2)、选择搬家 --->选择对应流
- 3)、搬家 --->读取|写出
- 1、卡车大小 --->数组大小
- 2、运输 --->读取|写出
- 4)、完毕 --->释放资源、关闭流
- 2、操作
- 1)、建立联系
- 2)、选择流
- 3)、操作 数组大小+reader\writer
- 4)、关闭流</font>
-
- package com.jbit.io.byteio;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileNotFoundException;
- import java.io.IOException;
- import java.io.InputStream;
- /**
- * 一、读取文件
- * 1、建立关联 File对象
- * 2、选择输入流 InputStream FileInputStream
- * 3、读取流 byte[] b = new byte[1024]+读取大小
- * 4、释放资源
- *
- * @author 李国梁
- *
- */
- public class demo01 {
- public static void main(String[] args) {
- // 1、建立关联
- File file = new File("D:/JAVA/mydoc/Study.txt");
- InputStream is = null;// 提升作用域
- try {
- // 2、选择输出流
- is = new FileInputStream(file);
- // 3、操作不断读取,缓冲数组。
- byte[] b = new byte[1024];
- // 接收实际读取大小
- int len = 0;
- // 循环读取
- while ((len = is.read(b)) != -1) {
- /**
- * 解读 String(byte[] bytes, int offset, int length)
- * bytes -要解码为字符的 byte
- * offset - 要解码的第一个 byte 的索引
- * length - 要解码的 byte 数
- */
- // 输出字节数组转成字符串
- String info = new String(b, 0, len);
- System.out.println(info);
- }
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- System.out.println("文件不存在");
- } catch (IOException e) {
- e.printStackTrace();
- System.out.println("文件读取失败!");
- } finally {
- if (is != null) {
- try {
- // 4、释放资源
- is.close();
- } catch (IOException e) {
- e.printStackTrace();
- System.out.println("关闭文件输入流失败!");
- }
- }
- }
- }
- }
复制代码
|
|