Java中的IO流:就是内存与设备之间的输入和输出操作就成为IO操作,也就是IO流。内存中的数据持久化到设备上--------》输出(Output)。把 硬盘上的数据读取到内存中,这种操作 成为输入-----》读(Input)。
input和output的参照物都是Java程序来参照
Input:读 持久化上的数据------》内存 父类 InputStream
output:写 内存---------》硬盘 父类OutputStream
IO程序书写流程:
1 使用前 导包 IO包中的类(import java.io.*)
2 使用中 进行异常的处理
3 使用后 释放资源(close())
例子如下:
OutputStream字节输出流的用法(写):
1 packagecom.aaa.demo;2
3 importjava.io.FileNotFoundException;4 importjava.io.FileOutputStream;5
6 /*
7 * FileOutputStream 写入数据文件 学习父类的方法 使用子类的对象8 * 子类中的构造方法 作用:绑定输出的目的的9 * File封装的文件10 * String字符串的文件夹11 **/
12 public classFileOutputStreamDemo {13 public static void main(String[] args) throwsException {14 //创建流子类对象 绑定数据目的
15 FileOutputStream fos=new FileOutputStream("c:\\aaa.txt");16 //调用write()方法 写一个字节
17 fos.write(97);18 //2.1写字节数组
19 byte[] b={65,66,67,68};20 fos.write(b);21 //2.2写字节数组的一部分
22 fos.write(b,1,2);23 //2.3写字符串 getBytes()字符串转字节
24 fos.write("hello world".getBytes());25 //3.close关闭资源
26 fos.close();27 }28 }
InputStream字节输入流的用法(读):
1 packagecn.lijun.demo1;2
3 importjava.io.FileInputStream;4 importjava.io.FileNotFoundException;5 importjava.io.FileOutputStream;6 importjava.io.IOException;7
8 //1创建字节输入流的子类对象9 //2 调用方法读取 read10 //3 关闭资源
11
12 public classFileInputStreamDemo {13 public static voidmain(String[] args) {14 try{15 FileInputStream fis = new FileInputStream("c:\\aaa.txt");16 int len =0;17 while((len=fis.read())!=-1){18 System.out.print((char)len);19 }20 } catch(IOException e) {21 //TODO Auto-generated catch block
22 e.printStackTrace();23 }24 }25 }
字节流和字符流的相同和区别:
相同点:两类都分为输入和输出操作。
不同点:1、字节流可用于任何类型的对象;分为InputStream(读)和OutputStream(写)两部分完成输入和输出;主要用来处理字节或二进制对象,,不能处理Unicode字符。
2、字符流分别操作字符、字符数组或字符串;分为Writer类和Reader类完成;主要用来处理字符或者字符串,可以处理Unicode字符。