FileOutputStream

一、流程:

  1. 打开文件输出流,流的目的地是指定的文件
  2. 通过流向文件写数据
  3. 用完流后关闭流

二、输出流写出方式1

 

使用write(int b)方法,一次写出一个字节.

 

public static void testWrite() throws IOException{
        
        //1、找到目标文件
        File file=new File("E:\\jia.txt");
        //2、建立数据输出道
        FileOutputStream fileOutputStream=new FileOutputStream(file);
        //3、开始写数据
        fileOutputStream.write('h');
        fileOutputStream.write('e');
        fileOutputStream.write('l');
        fileOutputStream.write('l');
        fileOutputStream.write('o');
        
        //4、关闭通道
        fileOutputStream.close();
        
    }

 

注意:

e盘下的jia.txt不存在会怎么样?

测试:将E盘下的jia.txt文件删除,发现当文件不存在时,会自动创建一个,但是创建不了多级目录

注意:使用write(int b)方法,虽然接收的是int类型参数,但是write 的常规协定是:向输出流写入一个字节。要写入的字节是参数 的八个低位的 24 个高位将被忽略。

三、输出流写出方式2

 

使用write(byte[] b),就是使用缓冲.提高效率.

 

public static void testWrite2() throws IOException{
        //1、找到目标文件
        File file=new File("E:\\jia.txt");
        //2、建立数据输出道
        FileOutputStream fileOutputStream=new FileOutputStream(file);
        //3、开始写数据
        String string="Hello World";
        fileOutputStream.write(string.getBytes());
        
        //4、关闭通道
        fileOutputStream.close();
        
    }

 

仔细查看jia.txt文本文件发现上述程序每运行一次,老的内容就会被覆盖掉,那么如何不覆盖已有信息,能够jia.txt里追加信息呢。查看API文档,发现FileOutputStream类中的构造方法中有一个构造可以实现追加的功能FileOutputStream(File file, boolean append)  第二个参数,append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处

 

 

每创建一个FileOutputStream 的时候,默认情况下FileOutputStream 的时候,默认情况下FileOutputStream
的指针是指向了文件的开始的位置。每写出一次,指向都会出现相应的移动。

posted @ 2015-11-26 11:56  好人难寻  阅读(443)  评论(0)    收藏  举报