FileInputStream、FileOutputStream的应用
-
/*
-
复制一个图片:
-
思路:
-
1、用字节流读取对象和图片进行关联
-
2、用字节写入流创建一个文件图片,用于存储获取到的图片数据。
-
3、通过循环读取,完成数据的存储。
- 4、关闭资源
- */
-
1、二者操作的基本单位是字节byte。
2、常用于读写图片、声音、影像文件。
基本操作步骤:
1、创建流对象
2、调用流对象的功能read、write等
3、关闭流对象 -
方法一:import java.io.*; class CopyMp3 { public static void main(String[] args) { CopyPic(); } public static void CopyPic() { FileInputStream fileInput = null; FileOutputStream fileOutput = null; try { fileInput = new FileInputStream("C:\\1.jpg"); fileOutput = new FileOutputStream("C:\\2.Jpg"); byte [] bt = new byte[1024]; int len = 0; while((len = fileInput.read()) != -1) { fileOutput.write(len); } } catch (IOException ex) { ex.printStackTrace(); } finally { try { if(fileInput != null) { fileInput.close(); } if(fileOutput != null) { fileOutput.close(); } } catch (IOException ex) { ex.printStackTrace(); } } } }
此时图片2和图片1的属性完全一样。
方法二:速度比较快,但是图片多了1KB,可能就是由于数组的使用。 -
import java.io.*; class CopyMp3 { public static void main(String[] args) { CopyPic(); } public static void CopyPic() { FileInputStream fileInput = null; FileOutputStream fileOutput = null; try { fileInput = new FileInputStream("C:\\1.jpg"); fileOutput = new FileOutputStream("C:\\2.Jpg"); byte [] bt = new byte[1024]; int len = 0; while((len = fileInput.read(bt)) != -1) { fileOutput.write(bt); } } catch (IOException ex) { ex.printStackTrace(); } finally { try { if(fileInput != null) { fileInput.close(); } if(fileOutput != null) { fileOutput.close(); } } catch (IOException ex) { ex.printStackTrace(); } } } }