###1.文件输入输出流基础知识
package day07;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
/**JAVA IO 标准的取写操作
* 流根据方向分为输入流与输出流,输入流InputStream用来读,输出流OutputStream用来写
* 流又分为节点流(低级流)和处理流(高级流)
* 低级流:读写必须建立在低级流上进行,它的数据源不明确,负责实际搬运数据的流
* 高级流:不能独立存在(没有意义),必须处理其他流,处理其他流的目的是简化我们的读写操作
* 文件流:用于读写文件的流,是一对低级流
* java.io.FileInputStream:文件输入流,读
* java.io.FileOutputStream:文件输出流,写*/
public class FOSFISDemo {
public static void main(String[] args) throws IOException {
/**java.io.FileOutputStream
* 文件流由两种对文件的写操作:
* 覆盖写操作(默认操作)和追加写操作
* 文件输出流提供了构造方法:
* FileOutputStream(String path)
* FileOutputStream(File file)
* 以上两种方式创建的文件输出流都是覆盖写操作,即:该流会先将该文件(若该文件存在并已经有数据)数据清空,在开始新的写操作
* 文件流还支持一个第二个参数为boolean值参数的构造方法,若该值为true,则是追加写操作,即:通过该流写出的数据都是在当前文件末尾被追加的*/
// FileOutputStream fos = new FileOutputStream("fos.txt");//文件流的覆盖写操作
FileOutputStream fos = new FileOutputStream("fos.txt",true);//文件流的追加写操作
String str = "You are my sunshine!";
// byte[] buf = str.getBytes("UTF-8");
// fos.write(buf);
fos.write(str.getBytes("UTF-8"));
System.out.println("文件输出流写入完毕");
fos.close();
/**java.io.FileInputStream
* 文件字节输入流,用来从文件中读取数据的流*/
FileInputStream fis = new FileInputStream("fos.txt");
byte[] bf = new byte[100];
int len = fis.read(bf);
String string = new String(bf,0,len,"UTF-8");
System.out.println(string);
System.out.println("文件输入流读取完毕");
fis.close();
}
}
###2.文件输入输出流实现文件复制