IO分类
第一种分发:
1、输入流(数据输入到java程序中) 2、输出流(数据从java程序中输出)
第二种分发:
1、字节流(以字节为单位传输) 2、字符流(以字符为单位传输)
第三种分发:
1、节点流(传数据的普通水管) 2、处理流(普通水管附加各种功能:加热、负离子,哈哈)
输入和输出,在Java中都是以Java程序为参照物的
输入:数据源进入java程序
输出:java程序数据进入到其他地方
I/O中的核心类
InputStream(抽象类) <--------- FileInputStream(继承InputStream)从硬盘读数据到java程序(输入流)
OutputStream(抽象类) <--------- FileOutputStream(继承OutputStream)java程序向硬盘写数据(输出流)
其中InputStream和OutputStream是所有字节流的父类,所有字节流都是他们的子类。
从电脑D盘D:\src\io\from.txt >>>>>读到java程序>>>>>从java程序写入to.txt
//第一步骤:导入类
import java.io.*;
class Test{
public static void main(String args[]){
//生成一个字节数组,用来存读取的字节
byte [] buffer = new byte[10];
//声明输入流引用(从硬盘读到java程序里)
FileInputStream fis = null;
//声明输出流引用(从java程序写到硬盘里)
FileOutputStream fos = null;
try{
//生成代表输入流的对象
fis = new FileInputStream("D:/src/io/from.txt");
//调用输入流对象的read方法,读取数据
//参数1:读取字节所存数组 参数2:偏移量 参数3:读取fis中位数
//read方法返回一次读取了多少字节
int temp = fis.read(buffer,0,buffer.length);
for(int i =0;i < buffer.length;i++){
System.out.println(buffer[i]);
}
String s = new String(buffer);
//buffer中除了前4个字符有东西,后面全部是0,0对应字符码是空字符
s.trim();//调用trim,去掉字符串首位空格和空字符
System.out.println(s);
fos = new FileOutputStream("D:/src/io/to.txt");
fos.write(buffer,0,temp);
}
catch(Exception e){
System.out.println(e);
}
}
}
建议结合视频学习,效果更好。文字只能看到一些。某些细节描述不出来,要写也太麻烦了。