zoukankan      html  css  js  c++  java
  • Java——IO类,字节流写数据

    字节流写数据

    █ OutputStream
          ☞FileOutputStream

    █ FileOutputStream的构造方法
         ☞FileOutputStream(File file);               //构造对象文件必须存在
         ☞FileOutputStream(String name);       
     
    █ 字节流写数据的方式  
         ☞public void write(int b);            
         ☞public void write(byte[] b);         
         ☞public void write(byte[] b,int off,int len);          
    public class IOTest {
    /*       
    应该使用其子类
    FileOutputStream(File file)
         创建一个向指定 File 对象表示的文件中写入数据的文件输出流。
    FileOutputStream(String filename)
    FileOutputStream(File file, boolean append)      //第一个参数String也可以
              创建一个向指定 File 对象表示的文件中写入数据的文件输出流。和上面不一样,不会清空原有内容,只会在后面追加
    ------------------------------------------------------
    void write(byte[] b)
         将 b.length 个字节从指定的 byte 数组写入此输出流。
    void write(byte[] b, int off, int len)
         将指定 byte 数组中从偏移量 off 开始的 len 个字节写入此输出流。
    abstract  void write(int b)         //一次写入一个字节。把高位的三个字节去掉,只写入最后字节
    // 0x ff 89 12 33  这个write只写入33
         将指定的字节写入此输出流。
    */
       public static void main(String[] args)  {
                    String word = "hello world";   //内存数据写到文件系统,输出流(字符流和字节流都可以)
                    File file = new File("1.txt");
                    FileOutputStream fos = null;
                    try{
                    //fos = new FileOutputStream(file);
                    //fos = new FileOutputStream("1.txt");
                    fos = new FileOutputStream("1.txt",true);   //对于写文件操作,如果文件不存在,输出流会帮你createNewFile


                    fos.write(100);  //写一个数字,打开文本的时候会默认去查编码表,显示该数据对应的字符(d)。写个字符串的话打开就是字符串本身;
                    fos.write(" ".getBytes());   //往文件里写换行," "是字符串,参数只能是字节,所有调用方法。
     //windows的换行是" ";高级记事本会识别多种换行,mac 下  " "  linux  换行  " "
                    fos.write('a');            //写进去的是 a ;
                    fos.flush();                 //数据写完进管道最好要用这个方法把数据放到文件里
                    byte[] bytes = { 97 ,98 ,99 ,100 , 101};
                    //fos.write(bytes);                    //往文件里写入a,b,c,d,e;
                    //fos.write(bytes, 1, 3);             //往文件里写入b,c,d;
                    byte[] bytes2 = word.getBytes();
                    for(int i=0 ;i<bytes.length;i++){
                            System.out.println("bytes2: "+bytes2[i]);        //104,101,108,108,111 ;
                    }
                    }catch(IOException e){
                            e.printStackTrace();
                    }finally{
                            if(fos!=null){
                                    try {
                                            fos.close();     //这里开头不设置初始值会出错,显示未初始化;因为try里面的初始化操作可能会出现异常,一旦异常发生没有初始化成功,这里的fos就是未初始化的了。
                                    } catch (IOException e) {
                                            e.printStackTrace();
                                    }
                            }
                    }
            }
    }

  • 相关阅读:
    手写token解析器、语法解析器、LLVM IR生成器(GO语言)
    Windows下切分文件(GnuWin32)
    转载:教你分分钟搞定Docker私有仓库Registry
    marathon传参一
    DC/OS安装
    自己写编程语言-m语言
    揽货最短路径解决方案算法
    揽货最短路径解决方案算法
    用keras作CNN卷积网络书本分类(书本、非书本)
    用keras做SQL注入攻击的判断
  • 原文地址:https://www.cnblogs.com/meihao1203/p/9181916.html
Copyright © 2011-2022 走看看