字节流
FileInputStream fis=new FileInputStream("fos.txt");//建立一个读取的字节流
byte[] buf=new byte[fis.available()];//定义一个数组,长度是刚刚好是字节 的长度,不用再循环了。注意:available()是字节流特有的方法。返回的是int类型,字节 的长度
复制一个图片:思路 注意:字符流也可以复制,不过容易出错,导致复制的文件打不开。
1.用字节读取流对象和图片相关联。
2.用字节写入流对象创建一个图片文件,用于存储获取到的图片数据。
3.通过循环读写操作,完成数据的存储。
4.关闭资源。
FileInputStream fis=null;
FileOutputStream fos=null;
try
{
fos=new FileOutputStrea("目标文件");
fis=new FileInputStrea("复制文件");
byte[] arr=new byte[1024];
int num=0;
while((num=fis.read(arr))!=-1)
{
fos.write(arr,0,num);
}
}
catch
{}~~~~~~
自定义字节流的缓冲区
read()和write()的特点:
read()会提升读取的字节。
write()会向下转型,输出有效位(指定位)
这样是避免读取到的是字节是-1,导致循环不能进行。 |
|