FileInputSteam与FileOutputSteam分别继承自InputSteam和OutputSteam,以字节为单位广泛用与文件操作的节点流。FileInputSteam类用于从文件读取数据,FileOutputSteam类用于将数据写入文件。
以下是利用FileInputSteam和FileOutputSteam编写一个复制文件的代码。
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class Main {
public static void main(String[] args) {
String pathname="D:\\123.java";//确定要复制的文件位置名字
String outname="D:\\1234.java";//确定复制到的文件位置名字
FileInputStream fis=null;
FileOutputStream fos=null;
try {
fis=new FileInputStream(pathname);//打开流
fos=new FileOutputStream(outname);
byte[] bytes=new byte[20];//操作流,以byte数组的形式传入
while(fis.read(bytes)!=-1){
fos.write(bytes);
fos.flush();
}
} catch (IOException e) {
throw new RuntimeException(e);
}
try {
System.out.println(fis.read());
} catch (IOException e) {
throw new RuntimeException(e);
}
finally { //关闭流
try {
fos.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
try {
fis.close();
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
}
该文件不仅可以复制文件还可以复制图片等。
注意:
1.在输入文件文件位置时要输入文件位置加文件名。
2.关闭流时要注意关闭顺序,先打开的后关闭,后打开的先关闭。
3.关闭流时两个流不能在同一个try里面,这样会导致如果第一个在关闭时出现了异常会导致第二个关闭不了。