Java中的IO流:就是内存与设备之间的输入和输出操作就成为IO操作,也就是IO流。内存中的数据持久化到设备上--------》输出(Output)。把 硬盘上的数据读取到内存中,这种操作 成为输入-----》读(Input)。
input和output的参照物都是Java程序来参照
Input:读 持久化上的数据------》内存 父类 InputStream
output:写 内存---------》硬盘 父类OutputStream
IO程序书写流程:
1 使用前 导包 IO包中的类(import java.io.*)
2 使用中 进行异常的处理
3 使用后 释放资源(close())
例子如下:
OutputStream字节输出流的用法(写):
1 package com.aaa.demo; 2 3 import java.io.FileNotFoundException; 4 import java.io.FileOutputStream; 5 6 /* 7 * FileOutputStream 写入数据文件 学习父类的方法 使用子类的对象 8 * 子类中的构造方法 作用:绑定输出的目的的 9 * File封装的文件 10 * String字符串的文件夹 11 * */ 12 public class FileOutputStreamDemo { 13 public static void main(String[] args) throws Exception { 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 package cn.lijun.demo1; 2 3 import java.io.FileInputStream; 4 import java.io.FileNotFoundException; 5 import java.io.FileOutputStream; 6 import java.io.IOException; 7 8 // 1创建字节输入流的子类对象 9 //2 调用方法读取 read 10 //3 关闭资源 11 12 public class FileInputStreamDemo { 13 public static void main(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字符。