Day16_97_IO_FileOutputStream 写入字节流

FileOutputStream 写入字节流

*  java.io.OutPutStream  ----->   java.io.FileOutputStream   将计算机内存中的数据写于磁盘中.

* 创建字节输出流有两种方式 

      - 方式一: new FileOutputStream(fileName); 该种方式,没有添加追加操作,这样创建的输出流对象,如果执行第二次的话,第二次写入的内容会把第一次写入的内容覆盖掉。

      - 方式二: new FileOutputStream(fileName,true);   该种方式,添加了追加操作,这样创建的输出流对象,执行第二次的话,不会覆盖第一次写入的内容,会在后边进行追加内容。


 *  将字符串转换为byte[]数组:  byte[] bytes=String str.getBytes();


 *  两种写入方式: 

         - 方式一:将bytes数组中的数据,全部写入  fos.write(bytes); 

         - 方式二 : 将bytes数组中的一部分写入     fos.write(bytes, 0, 5);  表示从数组bytes的下标0开始写入,写入长度为5.

 *  fos.flush();  清空内存缓冲区数据,从而保证完整写入


 * 代码:
       import java.io.FileNotFoundException;
       import java.io.FileOutputStream;
       import java.io.IOException;

       public class FileOutputStreamTest01 {
           public static void main(String[] args) {

               //创建文件路径
               String fileName="D:\\TestFile\\JavaTestFile\\FileOutputStreamTest01.txt"; //该文件不存在的话 会自动创建


               //创建文件字节输出流
               FileOutputStream fos=null;
               try {

                   //创建输出流

                   //方式一 不添加追加操作  这样创建输出流对象,如果执行第二次的话,第二次写入的内容会把第一次写入的内容覆盖掉
                   //fos=new FileOutputStream(fileName);

                   //方式二  添加追加操作   这样创建输出流对象,执行第二次的话,不会覆盖第一次写入的内容,会在后边进行追加内容
                     fos=new FileOutputStream(fileName,true);


                   //开始写入字节流操作

                   //创建要写入的对象
                   String message="Hello World!";

                   //创建byte数组
                   byte[] bytes=new byte[message.length()];


                   //将字符串转换为byte数组
                   bytes=message.getBytes();


                   //开始写入

                   // 写入方式一: 将bytes数组中的数据,全部写入。
                   //fos.write(bytes);  // Hello World!


                   //方式二 : 将bytes数组中的一部分写入  表示从下标0开始写入,写入长度为5.
                     fos.write(bytes,0,5);  // Hello


                   //强制写入
                   fos.flush();

               } catch (FileNotFoundException e) {
                   e.printStackTrace();
               } catch (IOException e) {
                   e.printStackTrace();
               } finally {
                   if(fos!=null){
                       try {

                           System.out.println("写入成功");

                           //关闭流
                           fos.close();

                       } catch (IOException e) {
                           e.printStackTrace();
                       }
                   }
               }
           }
       }

   
          

 
posted @ 2021-04-11 17:27  失昼  阅读(92)  评论(0)    收藏  举报