Java中的IO流总结

半腔热情 提交于 2019-12-05 12:15:52

File文件和目录地址名类

三个构造方法

File(String path);

File(String parent, String path);

File(File parent,String path);

创建方法

createNewFile();//创建文件

mkdir();//创建单级目录

mkdirs();//创建多级目录

获取的方法:

getPath(); //获得构造方法File(String path);中的路径

getAbsolutePath();//获取绝对路径

getName();//获取文件的名字

length(); // 获取文件的大小。

String[] list();//返回该目录下的子文件和子目录的名字到字符串数组

File[] listFiles();返回该目录下的子文件和子目录的名字到File数组

判断的方法:

isDirectory();//是不是目录

isFile();//是不是文件

exists();//存在么

递归遍历文件夹。

递归复制单级目录。

递归复制多级目录。

字节流——字节输出流 :

OutputStream 抽象类

FileOutputStream 实际输出字节的流

1: 续写 new FileOutputStream ("a.txt",true)

BufferedOutputStream 实际输出字节的缓冲流

new BufferedOutputStream(new FileOutputStream ("a.txt"));

PrintStream 字节打印流

ObjectOutputStream 序列化流,对象和字节之间的转换

                ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream ("a.txt"));
                oos.writeObject(new Student()); 
                    1:(必须的) Student 必须实现 Serializable接口 标记结构。
                    2:(推荐的) Student类里面写一个 serialVersionUID 

            方法:3个
                write(int ch);
                write(byte[] bys);
                write(byte[] bys,int off , int len);
            

    字节输入流:
        InputStream
            FileInputStream 
            BufferedInputStream
                new BufferedInputStream(new FileInputStream ("a.txt"));
            
            ObjectInputStream  序列化流
                ObjectInputStream oos = new ObjectInputStream(new FileInputStream ("a.txt"));


            方法:
                int read();
                int read(byte[] bys);
    
    字节流复制文件:
        普通字节流 一次一个字节
        普通字节流 一次一个字节数组
        缓冲字节流 一次一个字节
        缓冲字节流 一次一个字节数组

字符流(☆☆☆☆☆):
    字符输出流
        Writer :
            OutputStreamWriter :
                    OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream ("a.txt"), "UTF-8");
                
                FileWriter:
                    FileWriter fw = new FileWriter("a.txt"); //默认UTF-8

            BufferedWriter();
                BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream ("a.txt"), "GBK"));、
                
                方法:newLine(); 

            PrintWriter : 字符打印流。
                print();
                println(); 原样输出。
                
                PrintWriter pw = new PrintWriter(new FileWriter("a.txt") ,true);
                pw.write(97); 
                pw.print(97);
                pw.println(97); // a9797换行
            

            方法:5个
                write(int ch);
                write(char[] chs);
                write(char[] bys,int off , int len);
                write(String chs);
                write(String chs,int off , int len);


    字符输入流:
        Reader : 
            InputStreamReader :
                    InputStreamReader isr = new InputStreamReader( new FileInputStream("a.txt"), "GBK");
                
                FileReader;
                    FileReader fr = new FileReader("a.txt");
            
            BufferedReader :
                BufferedReader br = new BufferedReader(new FileReader("a.txt"));


            方法:
                int read();
                int read(char[] bys);
    
    复制文件:(只能复制纯文本文件)
        其实我们字符流 并不是为了复制文本文件而生的。
            那是啥?  当只把文本读取到程序中 使用。    或者 只把程序中的文本 写出到文件中的时候,我们采用字符流。
        
        字符流复制文件  一次一个字符
        字符流复制文件  一次一个字符数组
        缓冲字符流复制文件  一次一个字符
        缓冲字符流复制文件  一次一个字符数组
        缓冲字符流复制文件  一次一行
            bw.write(line);
            bw.newLine();
            bw.flush();
        打印字符流  一次一行
            pw.println(line);
    
递归复制文件

标准输入输出流(☆☆☆):
    System.in
        自定义键盘录入。
    
    System.out 

    System.err
        System.setErr(流向);

打印流

序列化

Properties(☆☆☆☆☆)
    集合。
    
    load
    store();
    list();
    save();
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!