一、FileOutputStream详解
1.该类的构造方法,有第二个参数
FileOutputStream(String address,boolean append)
append默认false,也就是新的写入会覆盖原来的东西。改为true的话,也就是以追加的形式写入文件
package com.bjpowernode.java_learning;
import java.io.*;
public class D97_1_FileOutputStream {
public static void main(String[] args){
//1.创建文件输出字符流
FileOutputStream f1 = null;
try {
f1 = new FileOutputStream("C:\\Users\\lenovo1\\Workspaces\\MyEclipse CI\\Java_learning\\src\\com\\bjpowernode\\java_learning\\temp1.txt");
//参数中的文件如果不存在的话,就会自动创建
//2.开始写
//推荐最后的时候为了保证数据完全写入硬盘,所以要刷新
String msg = "HelloWorld";
f1.flush();//强制写入
//将String转换成byte数组
byte[] bytes = msg.getBytes();
f1.write(bytes);
//如果带参数,即write(Object o,int a,int b)代表对象o的第a个字符到第b个字符写入文件
}catch(Exception e1) {
e1.printStackTrace();
}finally{
//关闭
if(f1 != null) {
try {
f1.close();
}catch(Exception e) {
e.printStackTrace();
}
}
}
}
}
二、文件的复制
package com.bjpowernode.java_learning;
import java.io.*;
public class D97_2_CompleteCopyFile {
public static void main(String[] args) throws IOException,FileNotFoundException{
//创建输入流
FileInputStream f1 = new FileInputStream("C:\\Users\\lenovo1\\Workspaces\\MyEclipse CI\\Java_learning\\src\\com\\bjpowernode\\java_learning\\temp1.txt");
//创建输出流
FileOutputStream f2 = new FileOutputStream("C:\\Users\\lenovo1\\Workspaces\\MyEclipse CI\\Java_learning\\src\\com\\bjpowernode\\java_learning\\temp2.txt");
//一边读一边写
byte[] bytes = new byte[1024];//1kb;
int temp = 0;
while((temp=f1.read(bytes)) != -1){
//将byte数组中的内容直接写入
f2.write(bytes);
}
//刷新
f2.flush();
//关闭
f1.close();
f2.close();
}
}
三、源码:
D97_1_FileOutputStream.java
D97_2_CompleteCopyFile.java
https://github.com/ruigege66/Java/blob/master/D97_1_FileOutputStream.java
https://github.com/ruigege66/Java/blob/master/D97_2_CompleteCopyFile.java
2.CSDN:https://blog.csdn.net/weixin_44630050
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料