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();
}
}
}
}
原文地址:https://www.cnblogs.com/dengshiwei/p/4258467.html