/* 字节流: InputStream OutputStream */ import java.io.*; class FileStream { public static void main(String[] args) throws IOException { outputFile(); //inputFile_1(); inputFile_2(); } /*不利用数组进行缓冲的方法*/ public static void outputFile() throws IOException //写 { FileOutputStream fos=new FileOutputStream("D:\\myfile\\mycode\\4.txt"); fos.write("abndks你好".getBytes()); fos.close(); } public static void inputFile() throws IOException//读 { FileInputStream fis=new FileInputStream("D:\\myfile\\mycode\\4.txt"); int ch=0; while((ch=fis.read())!=-1) { System.out.println((char)ch); } fis.close(); } /*利用数组进行缓冲的方法进行读*/ public static void inputFile_1() throws IOException//读 { FileInputStream fis=new FileInputStream("D:\\myfile\\mycode\\4.txt"); int num=0; byte[] b=new byte[1024]; while((num=fis.read(b))!=-1) { System.out.println(new String(b,0,num)); } fis.close(); } /*使用字节流对象中特有的available获取字节个数。*/ public static void inputFile_2() throws IOException//读 { FileInputStream fis=new FileInputStream("D:\\myfile\\mycode\\4.txt"); int num=fis.available(); byte[] b=new byte[num]; int x=fis.read(b); System.out.println("x:"+x); System.out.println("num:"+num); System.out.println(new String(b)); fis.close(); } }
复制图片:
/* 拷贝图片: 思路: 1,用字节读取流对象和图片关联。 2,用字节写入流对象创建一个图片文件,用于存储获取到的图片数据。 3,通过循环读写,完成数据的存储。 4,关闭资源。 */ import java.io.*; class CopyPic { public static void main(String[] args) { FileInputStream fis=null; FileOutputStream fos=null; try { System.out.println("1111"); fis=new FileInputStream("D:\\20.jpg"); System.out.println("2222"); fos=new FileOutputStream("C:\\test\\new.jpg"); System.out.println("3333"); byte[] b=new byte[1024]; int len=0; while((len=fis.read(b))!=-1) { fos.write(b,0,len); } } catch (IOException e) { throw new RuntimeException("复制文件失败"); } finally { try { if(fis!=null) fis.close(); } catch (IOException e) { throw new RuntimeException("读取关闭失败"); } try { if(fos!=null) fos.close(); } catch (IOException e) { throw new RuntimeException("写入关闭失败"); } } } }
复制MP3文件,使用字节流缓冲区
/* 通过复制MP3媒体文件来使用缓冲区 */ import java.io.*; class CopyMp3 { public static void main(String[] args) { long start=System.currentTimeMillis(); copy_1(); long end=System.currentTimeMillis(); System.out.println((end-start)+"毫秒"); } public static void copy_1() { FileInputStream fis=null; FileOutputStream fos=null; BufferedInputStream bis=null; BufferedOutputStream bos=null; try { fis=new FileInputStream("D:\\CloudMusic\\Lonely.mp3"); fos=new FileOutputStream("D:\\myfile\\mycode\\new.mp3"); bis=new BufferedInputStream(fis); bos=new BufferedOutputStream(fos); int by=0; while((by=bis.read())!=-1) { bos.write(by); } } catch (IOException e) { throw new RuntimeException("复制失败"); } finally { try { if(bis!=null) bis.close(); } catch (IOException e) { throw new RuntimeException("读取流关闭失败"); } try { if(bos!=null) bos.close(); } catch (IOException e) { throw new RuntimeException("写入流关闭失败"); } } } }
时间: 2024-11-09 12:28:12