java流的分类:

按流向分:输出流:OutputStream和Writer作为基类

输入流:IntputStream和Reader作为基类

按照处理数据单元划分:字节流:字节输入流InputStream基类;字节输出流OutputStream基类

字符流:字符输入流:Reader;字符输出流Writer基类

1.InputStream(抽象类)常用方法

int read();

int read(byte[] b);

int read(byte[] b ,int off,int len);

void close()

int available():可以从流种读取的字节数目

`byte[] bytes = new byte[1024];
            //从流中读取数据,将读取的数据存储在你声明的数组中,该方法返回的结果从流中读取到的字节数目
            int num =fis.read(bytes);
            System.out.println(num);
            //遍历数组,获取读到的数据
            for (int i = 0; i < num; i++) {
                System.out.print((char)bytes[i]);
            }`

int num; while((num=fis.read())!=-1){ System.out.print((char)num); }

2.FileInputStream(InputStream类的子类)常用构造方法

FileInputStream(File file)

FileInputStream(String name)

1.引入相关的类2.构造文件输入流3.读取文件文本数据4.关闭文件流对象

3.OutputStream类(抽象类)常用方法

void write(int c)

void write(byte[] buf)

void write (byte[] b ,int off,int len)

void close()

void flush():强制把缓冲区的数据写到输出流中

`fos = new FileOutputStream(file, true);
        fos.write(65);
        System.out.println("写入完毕");`

4.FileOutputStream(OutputStream类的子类)常用构造方法

FileOutputStream (File file)

FileOutputStream(String name)

FileOutputStream(String name,boolean append)

1.前两种构造方法在向文件写入数据时覆盖文件中原有的内容

2.创建FileOutputStream实例时,如果相应的文件不存在,则自动会创建一个空文件

public static void main(String[] args) {
        //创建FileInputStream类的对象
        FileInputStream fis = null;
        //创建FileOutputStream类对象输出数据
        FileOutputStream fos =null;
        try {
                fis = new FileInputStream("D:/a.txt");
                fos =new FileOutputStream("D:/demo.txt");
                //读取数据然后立马将读取的数据存储到外部文件中
                int num;
                while((num=fis.read())!=-1){
                    //在这里不需要将读取的数据输出在控制台,而是立马将数据存入到外部文件
                    fos.write(num);
                }
                System.out.println("文件复制完毕");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            try {
                //在一个类中使用了多个流,流的关系是有顺序的:先开的后关,后开的先开
                fos.close();
                fis.close();
            } catch (IOException e) {
                e.printStackTrace();
            }   
        }
    }

5.Reader类(抽象类)常用方法

int read()

int read(char[] c)

read(char[] c, int off,int len)

void close()

6.InputStreamReader类(Reader类的子类)常用构造方法

InputStreamReader(InputStream in)

InputStreamRander(InputStream in,String charseName)

7.FileReader(InputStreamReader类的子类)常用的构造方法

FileReader(File file)

FileReader(String name)

该类只能按照本地平台的字符编码来读取数据,用户不能指定其他的字符编码类型System.out.println(System.getProperty("file.encoding")); 获得本地平台的字符编码类型

8.BufferedReader类(Reader类的子类)常用的构造方法

BufferedReader(Reader in)

特有的方法:readLine();一行一行的读写 newLine():插入行

9.Writer类(抽象类)常用方法

write(String str)

write(String str,int off,int len)

void close()

void flush()

10.OutputStreamWriter(Writer类的子类)常用的构造方法

OutputStreamWriter(OutputStream out)

OutputStreamWriter(OutputStream out,String charsetName)

11.FileWriter(InputStreamWriter类的子类)常用的构造方法

FileWriter (File file)

FileWriter (String name)

12.BufferedWriter类(Writer类的子类)常用的构造方法

BufferedWriter(Writer out)

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐