大多数应用程序都是需要实现与设备之间的数据传输,下面我来介绍一下 IO流
IO就是用来数据读取数据的
在JDK中,提供了两个抽象类 InputStream 和 OutputStream ,它们是字节流的顶级父类,所有的字节输入流都继承自InputStream 和 OutputStream 。
为了方便理解 ,可以把InputStream 和 OutputStream 比作两个水管
下面就是代码
1
//输入流 是文件(数据源到程序)
2
// FileInputStream流的例子
3
FileInputStream in = new FileInputStream("C:/Users/YacaToy/Desktop/mission.txt");
4
int b = 0;
5
while (true) {
6
b = in.read(); //.read() 从输入流读取一个8个字节,把他转换为0~255之间的整数
7
if(b ==-1){ //如果取完了会返回 -1 也就不需要取了
8
break;
9
}
10
System.out.println(b);
11
}
12
in.close(); //记得.close() 把流关闭,否则内存会溢出
1
2
// 输出流 程序输出到文件
3
4
//FileOutputStream流的例子
5
FileOutputStream out = new FileOutputStream("C:/Users/YacaToy/Desktop/fileOut1.txt");
6
String str = "我是一个例子";
7
byte[] b = str.getBytes();
8
for (int i = 0 ; i <b.length ; i++){
9
out.write(b[i]);
10
}
11
out.close();
这样就把读和写 的功能写出来了
下面来说说联合使用
1
// 字节输出流流的配合使用
2
//输入流,从数据源输出到程序中
3
FileInputStream in = new FileInputStream("C:/Users/YacaToy/Desktop/mission.txt");
4
//输出流,从程序中输出到文件中去
5
FileOutputStream out = new FileOutputStream("C:/Users/YacaToy/Desktop/mission2.txt");
6
int len;
7
//在取出完文件的时候 会返回-1
8
while((len = in.read()) !=-1){
9
out.write(len);
10
}
11
in.close();
12
out.close();
你会发现这不是就是数据的拷贝吗。一边读一边取
1
//加了缓冲区
2
FileInputStream in = new FileInputStream("C:/Users/YacaToy/Desktop/mission.txt");
3
FileOutputStream out = new FileOutputStream("C:/Users/YacaToy/Desktop/missio3.txt");
4
byte[] buff = new byte[1024];
5
int len ;
6
while ((len = in.read(buff)) != -1){
7
out.write(buff,0,len);
8
}
9
in.close();
10
out.close();
下面就是字符流
其实用法和字节流差不多
直接代码把
1
//字符流的输入
2
FileReader reader = new FileReader("C:/Users/YacaToy/Desktop/mission.txt");
3
int ch ;
4
while ((ch = reader.read()) != -1){
5
System.out.println((char)ch);
6
}
7
reader.close();
1
//字符流的输出
2
FileWriter writer = new FileWriter("C:/Users/YacaToy/Desktop/mission5.txt");
3
String str = "我是一个例子";
4
writer.write(str);
5
writer.close();
1
//字符的输出和输入一起使用
2
FileReader reader = new FileReader("C:/Users/YacaToy/Desktop/mission.txt");
3
FileWriter writer = new FileWriter("C:/Users/YacaToy/Desktop/mission6.txt");
4
int ch ;
5
while ((ch = reader.read()) != -1){
6
writer.write(ch);
7
}
8
reader.close();
9
writer.close();