Java IO流 FileOutputStream、FileInputStream的用法

            FileOutputStream、FileInputStream的使用

  FileOutputStream是OutputStream的继承类,它的主要功能就是向磁盘上写文件。FileOutputStream类中的write方法会把字节一个一个的写入磁盘中。

  以下是使用FileOutputStream输出流将数据写入到指定的文件中,在构建FileOutputStream输出流对象的过程中,如果指定的文件不存在,那么就创建该文件。

package com.tianjh.io.outputstream;

import java.io.FileOutputStream;
import java.io.IOException;

/**
 * Created on 2020/12/9
 * 向磁盘上指定文件文件写入数据
 * $FileOutputStreamDemo用法
 *
 */
public class FileOutputStreamDemo {
    public static void main(String[] args) {
        FileOutputStream fileOutputStream;
        try {
            // 构建FileOutputStream对象,"D:/one.txt"文件不存在会自动新建
            fileOutputStream = new FileOutputStream("D:/one.txt");
            // write方法会把字节一个一个的写入磁盘中 write方法支持byte、int基本类型
            byte aa = 97;
            fileOutputStream.write(aa);

            int bb = 98;
            fileOutputStream.write(bb);

            char cc = 'c';
            // 没有write(char),只能机器自动从char转到int
            fileOutputStream.write(cc);

            // String dd = "100";
            // fileOutputStream.write(dd);
            // fileOutputStream.write(dd)会报错, 因为FileOutputStream流中没有write(String)方法,
            // 不过在PrintStream中有write(String)方法
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

执行之后得到如下文件:

  FileInputStream是IntputStream的继承类,它的主要功能就是向磁盘上读文件。FileInputStream类的read方法会一个一个字节的从磁盘往回读数据。下列是通过FileInputStream文件输入流读取指定文件 "D:/hello.txt"中的数据。 

package com.tianjh.io.inputstream;

import java.io.*;

/**
 * Created on 2020/12/9
 * 从磁盘上读入文件,并输出到控制台
 * $FileInputStreamDemo用法
 *
 */
public class FileInputStreamDemo {
    public static void main(String[] args) {
        FileInputStream fileInputStream;
        int size;
        try {
            // 使用字符串类型的文件名创建一个文件输入流对象来读取文件
            fileInputStream = new FileInputStream("D:/hello.txt");
            // available() 返回从此输入流中可以读取(或跳过)的剩余字节数的估计值,而
            // 不会被下一次调用此输入流的方法阻塞。
            size = fileInputStream.available();
            for (int i = 0; i < size; i++) {
                System.out.print((char) fileInputStream.read());
                // expected output: hello world!
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

hello.txt 文件内容如下:

 控制台输出的结果为:

  hello world!

posted @ 2020-12-10 16:28  tianjh  阅读(9996)  评论(0编辑  收藏  举报