文件字节输出流:写字节数据到文件:
API:
注意:close() 包含了 flush() ;
关闭后流就不可以继续使用了
写一个字节出去:
98表示一个字节
写一个字节数组:
注意:写数字和字母可以直接写出去,但是当写中文时,需要先编码( getBytes(); ),然后再写入。
同时还可以自己选择编码方式!!
还可以自己选择从数组中选择前几个进去
每次写入一次数据就换行一下,显得比较专业
\r\n 适用于大多数系统 \n在其他系统容易报错:
覆盖管道:
在实例化的时候如果构造方法内没有加上 TRUE 那这个管道就是覆盖管道,每次写入的数据都会覆盖之前文件里的所有数据
追加管道:当然,我们也可以给之前的文件添加新的内容,这就要用到新的API 即在构造方法最后 加上 TRUE,这样的话,每当程序启动,都不会清空上一次的数据
总结:
文件拷贝:
package com.gao.type_stream;
import java.io.*;
public class CopyDemo5 {
public static void main(String[] args) {
//
try {
// 定义一个字节输入流
InputStream is = new FileInputStream("E:\\高勇\\二寸照片.jpg");
//创建一个字节输出流
OutputStream os = new FileOutputStream("E:\\高勇.jpg");
byte[] buffer = new byte[1024];
int len;
while ((len= is.read(buffer)) != -1) {
os.write(buffer);
}
System.out.println("复制完成");
} catch (Exception e) {
e.printStackTrace();
}
}
}
资源释放方式:
1.try-catch-finally
如果在finally之前有return,那么也不影响finally的施行,但是如果finall中也是return语句 那么就要注意了,返回的return值最终都是finally里面的return值。
2.try-catch-resource
三个方法:(2个简化方法)
第二种方式:
第三种方式: