高级流的构建必须借助于低级流
处理异常时,应该使用try/catch
,并在finally
代码块中将流关闭close()
IO流
方向:
输入流,输出流
对于JAVA:输入流 –> JVM Java代码 –> 输出流
输入输出都在JVM的角度来判断的
目的地
低级流
- FileInputStream
- ByteArrayInputStream
- System.in
高级流
- BufferedInputStream 缓冲流
- ObjectInputStream 序列化
字节流和字符流:
区别
单位 | 类型 | 字节数 | 用途 |
---|---|---|---|
字节流 | byte | 1 | 常用来处理图片,音频,视频等,不会用到缓冲区 |
字符流 | char | 2 | 效率高,对文本支持较好,使用缓冲区来操作文件 |
字节流
字节输入流: InputStream
字节输出流:OutputStream
字符流
- 字符输入流:Reader
- 字符输出流:Writer
public static void readFromFile(String file) {
//1.声明
FileInputStream fis=null;
//2.初始化赋值
try {
fis = new FileInputStream(file);
byte[] b= new byte[1024];
fis.read(b);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(fis!=null) {
try {
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}