Java I/O流(2)——java字节流操作

字节流基类:InputStream OutputStream
需求:想要操作图片数据就要用到字节流
class FileStream
{
main()throws IOException
{
}
public static void writeFile()throws IOException
{
FileOutputStream fos=new FileOutputStream("fox.txt");
fos.write(("abcdef").getBytes());//不用刷新
fos.close();
}
public static void readFile_1()throws IOException
{
FileInputStream fis=new FileInputStream("fox.txt");
int ch=0;
while((ch=fis.read())!=-1)
{
System.out.println((char)ch);
}
fis.close();
}
public static void readFile_2()throws IOException
{
FileInputStream fis=new FileInputStream("fox.txt");
byte[] buf=new byte[1024];
int len=0;
while((len=fis.read(buf))!=-1)
{
System.out.println(new String(buf,0,len));
}
fis.close();
}
public static void readFile_3()throws IOException
{
FileInputStream fis=new FileInputStream("fox.txt");
byte[] buf=new byte[fis.available()];
fis.read(buf);
System.out.println(new String(buf));
fis.close();
}
}
练习:复制一个图片
main()
{

try{ 

FileInputStream fis=null;

FileOutputStream fos=null;
fis=new FileInputStream("fox.txt");
fos=new FileOutputStream("fox.txt");
byte[] buf=new byte[1024];
int len=0;
while((len=fis.read(buf))!=-1)
{
fos.write(buf,0,len);
}
}
catch(IOExcetion e)
{
throw new RuntimeEcception("复制文件失败");
}
finally
{
try{if(fis!=null) fis.close();}
catch(IOExcetion e)
{
throw new RuntimeEcception("读取关闭失败");
}
}
}
不要用字符流去复制媒体文件,可以复制但打不开


通过缓冲区,复制mp3文件
main()
{
BufferedInputStream bufis=new BufferedInputStream(new FileInputStream(“c://1.mp3”));
BufferedOnputStream bufis=new BufferedOnputStream(new FileOnputStream(“c://1.mp3”));
int by=0;
while((by=bufis.read())!=-1)
{
fos.write(by);//写入字节长度
}
bufos.close();
bufis.close();
}
这个缓冲区是默认的


模拟:自定义字节流缓冲区read和write的特点
MyBufferedInputStream中的成员InputStream

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值