IO概念
IO即输入input和输出output的缩写,是对数据流的输入、输出
流(Stream)
- 流代表任何有能力产出数据的数据源对象或者是有能力接受数据的接收端对象
- 流的本质是数据的传输
- Java中流的方向是单向的:只能输入或输出
字节流与字符流
字节流
没有缓冲区,是直接输出的。字符流
则是先输出到缓冲区字节流
未调用close()方法时便已经输出,而字符流
只有先调用close()方法关闭缓冲区才能输出,若字符流想不关闭便输出则需手动调用flush()方法字节流·
以字节(8bit)为单位,能够处理所有类型的数据。字符流
以字符为单位,只能处理字符类型的数据。
Java io包
在整个Java.io包
中常用的就是5个类和一个接口。5个类
指的是File、OutputStream、InputStream、Writer、Reader;1个接口
指的是Serializable
File:文件类,用于文件或者目录的描述信息
InputStream:抽象类,基于字节的输入操作,是所有输入流的父类
OutputStream:抽象类。基于字节的输出操作。是所有输出流的父类
Reader:抽象类,基于字符的输入操作
Writer(文件格式操作):抽象类,基于字符的输出操作
将一个D盘的文件传输到C盘
package com;
import java.io.*;
public class myFile {
public static void main(String[] args) throws IOException {
InputStream in = null;
OutputStream out = null;
try {
in = new FileInputStream("D://java//myStream.txt");
//如果文件不存在会自动创建
out = new FileOutputStream("C://java//myStreamone.txt");
int sign;
//循环读取
while ((sign = in.read()) != -1) { //文件读取完毕返回-1
out.write((char) sign);
}
} catch(FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
in.close();
out.close();
}
}
}