IO的简单介绍
IO概述
IO流用来处理设备之间的数据传输。
Java对数据的操作是通过流的方式。
Java用于操作流的对象都在IO包中。
IO分类:
流按操作数据分为两种:
字节流与字符流。
注意:其实计算机里的所有数据都是以字节的形式体现的,计算机可以直接识别节。但是作为人类的程序员更擅长操作字符,所以后期产生了字符流 。
流按流向分为:
输入流(input),输出流(output)。
IO中常见的核心的类及其方法的介绍:
字节流:
输入流:
InputStream
FileInputStream
read(int byte)
resd(byte[] arr)
BufferedInputStream
read(int byte)
resd(byte[] arr)
输出流:
OutputStream
fileOutputStream
write(int byte)
write(byte[] arr)
BufferedOutputStream
write(int byte)
write(byte[] arr)
字符流:
输入流:
Reader
FileWriter
read(char char)
read(char[] chars)
BufferedFileWriter
read(char char)
read(char[] chars)
readLine()
InputStreamWriter(转换流)
read(int byte)
resd(byte[] arr)
输出流:
Writer
FileReader
write(char char)
write(char[] chars)
BufferedFileReader
write(char char)
write(char[] chars)
newline()
OutputStreaReader(转换流)
write(int byte)
write(byte[] arr)
IO中常见的核心的类简单图解:
C:\Users\xue\Desktop\0315jva培训资料\day21\code
IO中常用的代码实现:
1:字节流的:
package cn.itcast3;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/*
* 使用高效字节流复制文件:
*/
public class Demo4 {
public static void main(String[] args) throws IOException {
long currentTimeMillis = System.currentTimeMillis();
//创建输入流对象
FileInputStream fis = new FileInputStream("b.txt");
BufferedInputStream bis = new BufferedInputStream(fis);
//创建输出流对象
FileOutputStream fos = new FileOutputStream("b2.txt");
BufferedOutputStream bos = new BufferedOutputStream(fos);
//读入
byte[] bytes = new byte[1024];
int len;
while((len=bis.read(bytes))!=-1) {
//写出
bos.write(bytes, 0, len);
bos.flush();
}
//关闭流
bos.close();
bis.close();
long currentTimeMillis2 = System.currentTimeMillis();
System.out.println(currentTimeMillis2-currentTimeMillis);
}
}
:2:字符流的:
package cn.itcast;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*
* 高效字符流完成文件复制
*/
public class Demo6 {
public static void main(String[] args) throws IOException {
//创建流对象
BufferedReader br = new BufferedReader(new FileReader("src/cn/itcast/Demo.java"));
BufferedWriter bw = new BufferedWriter(new FileWriter("d.txt"));
//读写
String line;
while((line = br.readLine())!=null) {
bw.write(line);
bw.newLine();
}
//关闭流
bw.close();
br.close();
}
}
3:转换流的:
package cn.itcast;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
/*
* 转换流:
* OutputStreamWriter:
* 使用时:将字节流转换成字符流
* 概念上:字符流通向字节流的桥梁
*
* InputStreamReader:
* 使用时:将字节流转换成字符流
* 概念上:字节流通向字符流的桥梁
*/
public class Demo7 {
public static void main(String[] args) throws IOException {
//创建流对象
//由字节流创建一个字符流
InputStreamReader isr = new InputStreamReader(new FileInputStream("a.txt"));
//由字符流创建高效字符流
BufferedReader br = new BufferedReader(isr);
//由字节流创建一个字符流
OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("e.txt"));
//由字符流创建高效字符流
BufferedWriter bw = new BufferedWriter(osw);
//读写
String line;
while((line=br.readLine())!=null) {
bw.write(line);
bw.newLine();
}
//关闭流
bw.close();
br.close();
}
}
|
|