字节流基类:InputStream OutputStream
需求:想要操作图片数据就要用到字节流
class FileStream
{
通过缓冲区,复制mp3文件
main()
{
这个缓冲区是默认的
模拟:自定义字节流缓冲区read和write的特点
MyBufferedInputStream中的成员InputStream
需求:想要操作图片数据就要用到字节流
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