java 数据流操作

File类
     概述
        文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
    构造方法
        public File(String pathname); // 通过将给定的路径名字符串转换为抽象路径名来创建新的 File实例。
        public File(String parent, String child); // 从父路径名字符串和子路径名字符串创建新的 File实例。
        public File(File parent, String child); // 从父抽象路径名和子路径名字符串创建新的 File实例。
    常用方法
        public String getAbsolutePath(); // 返回此File的绝对路径名字符串。
        public String getPath(); // 将此File转换为路径名字符串。
        public String getName(); // 返回由此File表示的文件或目录的名称。
        public long length(); // 返回由此File表示的文件的长度
        File f = new File("d:/aaa/bbb.java");
        f.getAbsolutePath();
    判断功能的方法
        public boolean exists(); // 此File表示的文件或目录是否实际存在。
        public boolean isDirectory(); // 此File表示的是否为目录。
        public boolean isFile(); // 此File表示的是否为文件
        File f = new File("d:/aaa/bbb.java");
        f.exists();
    创建删除功能的方法
        public boolean createNewFile(); //当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
        public boolean delete(); // 删除由此File表示的文件或目录。
        public boolean mkdir(); // 创建由此File表示的目录。
        public boolean mkdirs(); // 创建由此File表示的目录,包括任何必需但不存在的父目录
    目录的遍历
        public String[] list(); // 返回一个String数组,表示该File目录中的所有子文件或目录。 public File[] listFiles(); // 返回一个File数组,表示该File目录中的所有的子文件或目录。
OutputStream
    OutputStream: 字节输出流
    共性功能方法
        public void close(); // 关闭此输出流并释放与此流相关联的任何系统资源。
        public void flush(); // 刷新此输出流并强制任何缓冲的输出字节被写出。
        public void write(byte[] b); // 将 b.length字节从指定的字节数组写入此输出流。
        public void write(byte[] b, int off, int len); // 从指定的字节数组写入 len字节,从偏移量 off开始输 出到此输出流。
        public abstract void write(int b); // 将指定的字节输出流。
InputStream
    InputStream: 字节输入流
    共性功能方法
        public void close(); //关闭此输入流并释放与此流相关联的任何系统资源。
        public abstract int read(); //从输入流读取数据的下一个字节。
        public int read(byte[] b); // 从输入流中读取一些字节数,并将它们存储到字节数组 b中 。
FileOutputStream
     FileOutputStream: 文件输出流,用于将数据写出到文件。
     构造方法
        public FileOutputStream(File file, boolean append); // 创建文件输出流以写入由指定的 File对象表示的文件。参数中都需要传入一个boolean类型的值, true 表示追加数据, false 表示清空原有数据
            File file = new File("a.txt", "true");   // 使用File对象创建流对象  true追加数据
            FileOutputStream fos = new FileOutputStream(file);
        public FileOutputStream(String name, boolean append); // 创建文件输出流以指定的名称写入文件。参数中都需要传入一个boolean类型的值, true 表示追加数据, false 表示清空原有数据
            FileOutputStream fos = new FileOutputStream("b.txt" "flase");  // 使用文件名称创建流对象
    写出字节
        FileOutputStream fos = new FileOutputStream("fos.txt");
        write(int b)
        fos.write(97); // 写出数据
    写出字节数组
        FileOutputStream fos = new FileOutputStream("fos.txt");
        byte[] b = "abcde".getBytes();  // 字符串转换为字节数组
        fos.write(b);   // 写出字节数组数据
    写出指定长度字节数组
        FileOutputStream fos = new FileOutputStream("fos.txt");
        byte[] b = "abcde".getBytes();
        fos.write(b,2,2);  // 写出从索引2开始,2个字节。索引2是c,两个字节,也就是cd。
FileInputStream
    FileInputStream:文件输入流,从文件中读取字节。
    构造方法
        FileInputStream(File file); // 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系 统中的 File对象 file命名。
            File file = new File("a.txt");   // 使用File对象创建流对象
            FileInputStream fos = new FileInputStream(file);
        FileInputStream(String name); // 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件 系统中的路径名 name命名。
            FileInputStream fos = new FileInputStream("b.txt");  // 使用文件名称创建流对象
    读取字节
        FileInputStream fis = new FileInputStream("read.txt");  // 使用文件名称创建流对象
        int read = fis.read();  // 读取数据,返回一个字节
        System.out.println((char) read);
        read = fis.read();   // 读取到末尾,返回‐1
    使用字节数组读取
        FileInputStream fis = new FileInputStream("read.txt"); // 使用文件名称创建流对象.
        byte[] b = new byte[2];   // 定义字节数组,作为装字节数据的容器
        fis.read(b); // 读取文件
Reader
    Reader:  字符输入流
    共性功能方法
        public void close(); // 关闭此流并释放与此流相关联的任何系统资源。
        public int read(); // 从输入流读取一个字符。
        public int read(char[] cbuf); // 从输入流中读取一些字符,并将它们存储到字符数组 cbuf中
Writer
    Writer: 字符输出流
    共性功能方法
        void write(int c); // 写入单个字符。
        void write(char[] cbuf); // 写入字符数组。
        abstract void write(char[] cbuf, int off, int len); //写入字符数组的某一部分,off数组的开始索引,len 写的字符个数。
        void write(String str); // 写入字符串。
        void write(String str, int off, int len); // 写入字符串的某一部分,off字符串的开始索引,len写的字符个 数。
        void flush(); // 刷新该流的缓冲。
        void close(); // 关闭此流,但要先刷新它。
FileReader
    FileReader:读取字符文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区
    构造方法
        FileReader(File file): // 创建一个新的 FileReader ,给定要读取的File对象。
            File file = new File("a.txt");
            FileReader fr = new FileReader(file);  // 使用File对象创建流对象
        FileReader(String fileName): // 创建一个新的 FileReader ,给定要读取的文件的名称。
            FileReader fr = new FileReader("b.txt");  // 使用文件名称创建流对象
    读取字符
        FileReader fis = new FileReader("read.txt");  // 使用文件名称创建流对象
        int read = fis.read();  // 读取数据,返回一个字节
        System.out.println((char) read);
        read = fis.read();   // 读取到末尾,返回‐1
    使用字符数组读取
        FileReader fis = new FileReader("read.txt"); // 使用文件名称创建流对象.
        byte[] b = new byte[2];   // 定义字节数组,作为装字节数据的容器
        fis.read(b); // 读取文件
FileWriter
    FileWriter: 写出字符到文件的便利类。构造时使用系统默认的字符编码和默认字节缓冲区。
    构造方法
        FileWriter(File file, boolean append); // 创建一个新的 FileWriter,给定要读取的File对象。true 表示追加数据, false 表示清空原有数据
            File file = new File("a.txt");
            FileWriter fw = new FileWriter(file);  // 使用File对象创建流对象
        FileWriter(String fileName, boolean append); // 创建一个新的 FileWriter,给定要读取的文件的名称。true 表示追加数据, false 表示清空原有数据
            FileWriter fw = new FileWriter("b.txt");  // 使用文件名称创建流对象
    写出字符
        FileWriter fw = new FileWriter("fw.txt");
        write(int b)
        fw.write(97); // 写出数据
    写出字符数组
        FileWriter fw = new FileWriter("fw.txt");
        byte[] b = "abcde".getBytes();  // 字符串转换为字节数组
        fw.write(b);   // 写出字节数组数据
    写出指定长度字符数组
        FileWriter fw = new FileWriter("fw.txt");
        byte[] b = "abcde".getBytes();
        fw.write(b,2,2);  // 写出从索引2开始,2个字节。索引2是c,两个字节,也就是cd。
    写出字符串
        FileWriter fos = new FileWriter("fw.txt");
        fw.write("黑马");  // 写出从索引2开始,2个字节。索引2是c,两个字节,也就是cd。
    关闭和刷新
        flush: 刷新缓冲区,流对象可以继续使用。
        close: 先刷新缓冲区,然后通知系统释放资源。流对象不可以再被使用了。
属性集
    Properties类
    构造方法
        public Properties(): 创建一个空的属性列表。
            Properties properties = new Properties();  // 创建属性集对象
    基本的存储方法
        public Object setProperty(String key, String value); // 保存一对属性。
        public String getProperty(String key); // 使用此属性列表中指定的键搜索属性值。
        public Set<String> stringPropertyNames(); // 所有键的名称的集合。
            Properties properties = new Properties();  // 创建属性集对象
            properties.setProperty("filename", "a.txt");   // 添加键值对元素
    与流相关的方法
        public void load(InputStream inStream): 从字节输入流中读取键值对。
            Properties pro = new Properties(); // 创建属性集对象
            pro.load(new FileInputStream("read.txt"));   // 加载文本中信息到属性集
BufferedInputStream
    public BufferedInputStream(InputStream in): // 创建一个 新的缓冲输入流。
        BufferedInputStream bis = new BufferedInputStream(new FileInputStream("bis.txt")); // 创建字节缓冲输入流
BufferedOutputStream
    public BufferedOutputStream(OutputStream out); // 创建一个新的缓冲输出流。
        BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream("bos.txt"));  // 创建字节缓冲输出流
BufferedReader
    public BufferedReader(Reader in) :创建一个 新的缓冲输入流。
        BufferedReader br = new BufferedReader(new FileReader("br.txt")); // 创建字符缓冲输入流
    特有方法
        BufferedReader: public String readLine() : 读一行文字。读取到最后返回null
            BufferedReader br = new BufferedReader(new FileReader("in.txt"));
                br.readLine();  // 读取,读取到最后返回null
BufferedWriter
    public BufferedWriter(Writer out) : 创建一个新的缓冲输出流。
        BufferedWriter bw = new BufferedWriter(new FileWriter("bw.txt"));  // 创建字符缓冲输出流
    特有方法
        BufferedWriter: public void newLine() : 写一行行分隔符,由系统属性定义符号
            BufferedWriter bw = new BufferedWriter(new FileWriter("out.txt"));  // 创建流对象
            bw.newLine();   // 写出换行
InputStreamReader
    InputStreamReader: 是Reader的子类,是从字节流到字符流的桥梁。它读取字节,并使用指定 的字符集将其解码为字符
    构造方法
        InputStreamReader(InputStream in); // 创建一个使用默认字符集的字符流。
            InputStreamReader isr = new InputStreamReader(new FileInputStream("in.txt"));
        InputStreamReader(InputStream in, String charsetName); // 创建一个指定字符集的字符流
            InputStreamReader isr2 = new InputStreamReader(new FileInputStream("in.txt") , "utf-8");  // 编码不区分大小写
OutputStreamWriter
    OutputStreamWriter: 是Writer的子类,是从字符流到字节流的桥梁。使用指定的字符集将字符 编码为字节
    OutputStreamWriter(OutputStream in); //创建一个使用默认字符集的字符流。
        OutputStreamWriter isr = new OutputStreamWriter(new FileOutputStream("out.txt"));
    OutputStreamWriter(OutputStream in, String charsetName); // 创建一个指定字符集的字符流。
        OutputStreamWriter isr2 = new OutputStreamWriter(new FileOutputStream("out.txt") , "utf-8");

  

原文地址:https://www.cnblogs.com/yoyo1216/p/12738118.html