1、InputStream和OutputStream
InputStream和OutputStream是抽象类,是所有字节输入流和输出流的父类。
这里,我们首先要分清楚两个概念:
InputStream(输入流):输入流是用来读入数据的。读入
OutputStream(输出流):输出流是用来写出数据的。写出
public class FileUtil {
public static void testFileOutPutStream() throws FileNotFoundException {
FileOutputStream fileOutputStream = new FileOutputStream("jak.txt");
}
public static void createTempFile() throws Exception {
File tempFile = File.createTempFile("test", ".txt");
System.out.println("文件路径: " + tempFile.getAbsolutePath());
tempFile.deleteOnExit();
FileOutputStream fileOutputStream = new FileOutputStream(tempFile);
fileOutputStream.write("aaa".getBytes());
}
public static void main(String[] args) throws Exception {
createTempFile();
}
}
2、使用FileInputStream和FileOutputStream实现文件的复制
import java.io.FileInputStream;
import java.io.FileOutputStream;
/**
* 使用文件输入流和文件输出流实现文件的复制
* @author Administrator
*
*/
public class SummaryFISAndFOS {
public static void main(String[] args){
/**
* 1.先将文件中的内容读入到输入流中
* 2.将输入流中的数据通过输出流写入到目标文件中
* 3.关闭输入流和输出流
*/
try {
long begin=System.currentTimeMillis();
//从输入流中读取数据
FileInputStream fis=new FileInputStream("FOSDemo.txt");
//向输出流中写入数据
FileOutputStream fos=new FileOutputStream("FISAndFOSDest.txt");
//先定义一个字节缓冲区,减少I/O次数,提高读写效率
byte[] buffer=new byte[10240];
int size=0;
while((size=fis.read(buffer))!=-1){
fos.write(buffer, 0, size);
}
fis.close();
fos.close();
long end=System.currentTimeMillis();
System.out.println("使用文件输入流和文件输出流实现文件的复制完毕!耗时:"+(end-begin)+"毫秒");
} catch (Exception e) {
e.printStackTrace();
}
//解决JNI问题(Java Native Interface)
System.exit(0);
}
}