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();     }   }
    }
  • 相关阅读:
    centos6.5 安装redis自动启动
    正则去除字符串中的特殊字符
    数据库存储去重
    pymysql.err.ProgrammingError: (1064)(字符串转译问题)
    [转] Linux下SVN的三种备份方式
    ASP.NET ASHX中访问Session
    ionic 里使用 iframe 可能遇到的问题
    ionic $http 无法正常访问外部web服务器的问题
    Mac下80端口相关
    IIS7 无法写入配置文件web.config 错误
  • 原文地址:https://www.cnblogs.com/lingq/p/12916908.html
Copyright © 2011-2022 走看看