IO

一、FIle文件

1、关于File的API(常用方法)

返回类型  方法名       说明

boolean  exists()      判断该文件是否存在

String   getAbsolutePath() 输出该文件的绝地路径

String   getName()     获取该文件的名称

String   getParent()    返回file文件对象的上一级目录

boolean  isAbsoulte()    测试该FIle对象表示的路径是否为绝地路径

boolean  isDirectory()    测试该FIle对象是否表示为目录

boolean  isFile()      测试该File对象表示的是否为文件

File[]    listFile()      返回File表示目录下的所有文件

二、Stream字节流

1、InputStream抽象类

(1)FileInputStream

(2)FilterInputStream   字节缓冲流,需要关闭

(3)ObjectInputStream  序列化,需要关闭流,避免造成资源浪费

2、OutputStream抽象类

(1)FileOutputStream

(2)FilterOutputStream:BufferdOutputStream和DataOutputStream

(3)ObjectOutputStream

说明:其中FileterInputStream、ObjectInputStream和输出都依赖于InputStream和OutputStream抽象类

DataOutputStream写入流源码:

public static void DataOutputStreamTest(String path) throws Exception{
        OutputStream fis = new FileOutputStream(path);
        DataOutputStream dos = new DataOutputStream(fis);
        dos.writeUTF(info.name);
        dos.writeInt(info.pwd);
        dos.close();
        System.out.println("写入成功");
    }

ObjectOutputStream写入流

public static void ObjectOputputStreamTest(String path) throws Exception{
        FileOutputStream fos = new FileOutputStream(path);
        ObjectOutputStream oos = new ObjectOutputStream(fos);
        oos.writeObject(list);      //写入集合
        oos.close();
        System.out.println("写入完成");
    }

FileInputStream读取流

public static void fileInputStreamTest(String path) throws Exception{
        //创建文件读入流对象
        FileInputStream fis = new FileInputStream(path);
        //定义byte
        byte[] b=new byte[1024];
        int i=-1;    //默认读取长度为-1
        //遍历该文件的字节内容并进行读取
        while((i=fis.read(b))>0) {
            System.out.println(new String(b,0,i));
        }
    }

FileOutputStream写入流

    //FileOutputStream写入
    public static void fileOutPutStreamTest(String path) throws Exception {
        String msg="我不曾在你辉煌时莫名而来,也不曾在你陷入低谷时离你而去!";
        FileOutputStream fos = new FileOutputStream(path);
        //getBytes()将字符串转化为byte
        fos.write(msg.getBytes());
        System.out.println("写入成功");
    }

三、字符流

1、Reader抽象类

(1)FileReader

(2)BufferReader

(3)InputStreamReader

2、Write抽象类

(1)FileWriter

(2)BufferWriter

(3)OutputStreamWriter

OutputStreamWriter源码:

public static void outputStreamWriteTest(String path) throws Exception{
            OutputStream os = new FileOutputStream(path);
            OutputStreamWriter osw = new OutputStreamWriter(os);
            char[] c = new char[10];
            for(int i=0;i<c.length;i++) {
                c[i]=(char) i;
                
            }
            osw.write(c);
            osw.close();
        }

InputStreamReader源码

//InputStreamReader读取 依赖InputStream
        public static void inputStreanReaderTest(String path) throws Exception{
            InputStream in = new FileInputStream(path);
            InputStreamReader isr = new InputStreamReader(in);
            char[] c = new char[1024];
            int i=-1;
            while((i=isr.read(c))>0) {
                System.out.println(new String(c,0,i));
            }
            isr.close();
            System.out.println("读取ok");
        }

 

posted @ 2019-08-31 10:24  字节灬跳动  阅读(146)  评论(0编辑  收藏  举报