zoukankan      html  css  js  c++  java
  • Java IO(五)字节流 FileInputStream 和 FileOutputStream

    Java IO(五)字节流 FileInputStream 和 FileOutputStream

    一、介绍

    字节流 InputStream 和 OutputStream 是字节输入流和字节输出流的超类(父类)。FileInputStream 和 FileOutputStream 是字节流用于操作文件的子类。

    (一)、FileInputStream

    FileInputStream 是文件字节输入流,继承自 InputStream,通常,我们使用FileInputStream从某个文件中获得输入字节。

    (二)、FileOutputStream

    FileOutputStream 是文件字节输出流,继承自 OutputStream,通常,我们使用 FileOutputStream 将数据写入 File 或者 FileDescriptor  的输出流。

    二、构造方法

    (一)、FileInputStream构造方法

     

    (二)、FileOutputStream构造方法

    三、常用API

    (一)、FileInputStream常用API

    (二)、FileOutputStream常用API

    四、实例

    (一)、单个字节读写数据

    public static void main(String[] args) {
        File file = new File("test.txt");
        write(file, 'A');
        char r = read(file);
        System.out.println(r);
    }
    
    // 写入单个字节数据
    public static void write(File file,int b) {
        FileOutputStream fos = null;
        try {
            // 追加模式默认为 false ,即数据不续写到文件中
            fos = new FileOutputStream(file);
            fos.write(b);
        }catch(Exception e) {
            e.printStackTrace();
        }finally {
            try {
                if (fos != null) {
                    fos.close();
               }
            }catch(Exception e) {
                e.printStackTrace();
          }
      }   
    }
        
    // 读取单个字节数据
    public static char read(File file) {
        FileInputStream fis = null;
        try {
            fis = new FileInputStream(file);
            return (char)fis.read();
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                if (fis != null) {
                    fis.close();
                }
            }catch(Exception e) {
                e.printStackTrace();
            }
        }
        return 0;
    }

    (二)、字节数组读取数据

    public static void main(String[] args) {
        write();
        read();
    }
    
    public static void write() {
        FileOutputStream fos = null;
        File file = new File("test.txt");
        byte[] buffer = "abcdefghijklmnopqrstuvwxyz".getBytes();
        try {
            // 指定追加模式为true
            fos = new FileOutputStream(file, true);
            // 以字节数组写入
            fos.write(buffer);
        }catch(Exception e) {
            e.printStackTrace();
        }finally {
            try {
              if (fos != null) {
                 fos.close();
               }
            }catch (Exception e) {
               e.printStackTrace();
            }
      }
    }
    
    //读取字节数组数据
    public static void read() {
      File file = new File("test.txt");
      FileInputStream fis = null;
      byte[] buffer = new byte[10];
      int len = 0;
      try {
        fis = new FileInputStream(file);
        while((len = fis.read(buffer)) != -1) {
          fis.read(buffer, 0, len);       System.out.println(
    new String(buffer));     }   }catch(Exception e) {     e.printStackTrace();   }finally {     try {       if (fis != null) {         fis.close();       }     }catch(Exception e) {       e.printStackTrace();     }   }
    }
  • 相关阅读:
    hibernate -- 分页模糊查询中setParameter 和setParameterList
    HTTP协议状态码详解(HTTP Status Code)
    远程桌面全屏显示
    将中文标点符号替换成英文标点符号
    MySQL 三种关联查询的方式: ON vs USING vs 传统风格
    java如何遍历map的所有的元素(各种方法)
    JS处理Cookie
    js追加子元素
    JAVA编程思想(2)
    1047. Student List for Course (25)
  • 原文地址:https://www.cnblogs.com/lingq/p/12916908.html
Copyright © 2011-2022 走看看