eclipse
@Test public void test() throws Exception {//没有d.txt文件,则创建一个,有的话就覆盖,(里面的内容覆盖掉) FileOutputStream fos=new FileOutputStream('d.txt'); String s='我爱java!';//将字符串转成byte数组(string内存在的方法) fos.write(s.getBytes()); fos.close(); }
@Test public void test02() throws Exception{ FileInputStream dis=new FileInputStream('d.txt');//dis.read()和dis.read(date)同时存在输出和想象的不一样???? //int len=dis.read();//空数组定义长度为100 byte[] date=new byte[100];
//获得读取文件内容的长度 int len2=dis.read(date); System.out.println('文件内容大小'+len2);//将byte【】数组转成字符串,string类提供的方法 String str=new String(date,0,len2); System.out.println(str); }
@Test public void test03() throws Exception{ File src=new File('赵雷 - 成都.mp3'); File des=new File('赵雷 - 成都 - copy.mp3'); FileInputStream fis=new FileInputStream(src); FileOutputStream fos=new FileOutputStream(des); int len=-1; System.out.println('复制开始.......'); long start=System.currentTimeMillis(); while((len=fis.read())!=-1){ fos.write(len); } long end=System.currentTimeMillis(); System.out.println('复制结束。'+(end-start)); }
//文件读取到结束为-1; int len=-1; System.out.println('复制开始.......');//获取当前的时间毫秒数 long start=System.currentTimeMillis(); while((len=fis.read())!=-1){ fos.write(len); }//获取结束后的时间毫秒数 long end=System.currentTimeMillis();//查看文件复制所用的时间 System.out.println('复制结束。'+(end-start)); }可以看到消耗的时间,大概一分钟零五秒,这这文件是5兆,如果是50兆,500兆,这样的效率太低因为读一个,写一个,所以效率比较低。我们编写一个缓冲区,一次读取10kb
IO流分为高级流和低级流 如何区分高级流和低级流 如果流的操作内容是文件那么该流就是低级流,如果 该流操作内容是一个流,那么该流就是高级流。 简单来说,和文件打交道的流时低级流。 如何区分输入流和输出流 流是不是输出还是输入,相对的参照物是内存, 如果将一个文本文件的内容输出到控制台显示,首先 需要将该文件的内容读取到内容中,然后输出到控制台。 流----> input 输入流 ----> output 输出流
缓存10kb的程序下次写