1.IO stream
1.1 概述
-
IO流的简述
IO流可以代表dist file ,deviece ,network(socket)等对象,我们操作IO流就相当操作这些对象
IO流支持各种primitive date type ,string 和oject数据类型
-
关系
byte stream class 都是继承
InputStream
,OutputStream
类,其中byte steam class 有FileInputStream
FileOutputStream
,其他IO流都是从该类中继承发展出来的
1.2 byte stream
-
简述
使用
FileInputStream
FileOutputSteam
来进行输入和输出,这些类每次都只操作一个字节 -
例子
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class CopyBytes { public static void main(String[] args) throws IOException { FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream("xanadu.txt"); out = new FileOutputStream("outagain.txt"); int c; while ((c = in.read()) != -1) { out.write(c); } } finally { //注意,不管有没有读取和输出成功,都要关闭流 if (in != null) { in.close(); } if (out != null) { out.close(); } } } }
-
使用环境
一般都不会直接使用byte streams,因为其实相当于最原生的io stream class,我们可以使用在该类基础山发展出来的更高级封装的io stream,来操作复杂的数据类型,例如如果读取的文件中包含charater字符,则是更好使用charater stream
1.3 character stream
-
简述
FileReader
FileWriter
每次读取一个字符(charater) -
例子
import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class CopyCharacters { public static void main(String[] args) throws IOException