java_base:IO流

  • Post author:
  • Post category:java




1.IO流分类

字节流:

输入流:FileInputStream、FilterInputStream、ObjectInputStream、StringBufferInputStream

输出流:FileOutputStream、FilterOutputStream、ObjectOutputStream、StringBufferOutputStream

字符流:

输入流:InputStreamReader、StringReader、BufferedReader、FilterReader

输出流:InputStreamWriter、StringWriter、BufferedWriter、FilterWriter



2.使用

FileOutputStream

public class Demo01OutputSteam {
    public static void main(String[] args) throws IOException {

        FileOutputStream fos= new FileOutputStream("d:\\test\\abc.txt");
        fos.write("你好".getBytes());
        fos.write(97);
        fos.close();
    }
}

追加写入 append:true

public class Demo02OutputSteam {
    public static void main(String[] args) throws IOException {

        FileOutputStream fos= new FileOutputStream(new File("d:\\test\\a.txt"),true);
        fos.write("\r\n".getBytes());
        fos.write(49);
        fos.write(48);
        fos.write(48);
        fos.write("\r\n".getBytes());
        byte[] bytes = {65,66,67,68,69,78,70};
        fos.write(bytes);
        fos.close();
    }
}

FileInputStream

public class Demo03InputSteam {
    public static void main(String[] args) throws IOException {
        FileInputStream fis = new FileInputStream("d:\\test\\a.txt");
        int len=0;
        while((len=fis.read())!=-1){
            System.out.print((char) len);
        }
        show01();
    }

    private static void show01() throws IOException {
        FileInputStream fis = new FileInputStream("d:\\test\\a.txt");
        byte[] bytes = new byte[1024];
        int len =0;
        while ((len=fis.read(bytes))!=-1){
            System.out.println(new String(bytes,0,len));
        }
        fis.close();
    }
}

FileInputStream与FileOutputStream结合使用

private static void copyDoc() throws IOException {
        File f = new File("d:\\test\\hetl");
        if(!f.exists()){
            f.mkdirs();
        }
        FileInputStream fis = new FileInputStream("d:\\test\\1.jpg");
        FileOutputStream fos = new FileOutputStream(f+"\\1.jpg");

        int len=0;
        while((len = fis.read())!=-1){
            //System.out.println(len);
            fos.write(len);
        }
        fos.close();
        fis.close();
    }

BufferedInputStream、BufferedOutputStream

private static void show02() throws IOException {
        FileInputStream fis = new FileInputStream("d:\\test\\a.txt");
        BufferedInputStream bis = new BufferedInputStream(fis);
        int len = 0;
        byte[] bytes = new byte[1024];
        while ((len=bis.read(bytes))!=-1){
            System.out.println(new String(bytes,0,len));
        }
        bis.close();
    }

    private static void show01() throws IOException {
        FileOutputStream fos = new FileOutputStream("d:\\test\\b.txt");
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        bos.write("欢迎观看撒v是".getBytes());
        bos.flush();

        bos.close();
    }

FileReader:

public class Demo05Reader {
    public static void main(String[] args) throws IOException {
        FileReader fr  = new FileReader("d:\\test\\a.txt");
        char[] chars = new char[1024];
        int len = 0;
        while ((len = fr.read(chars))!=-1){
            System.out.println(new String(chars,0,len));
        }
        fr.close();
    }
	private static void show01() throws IOException {
        Properties prop = new Properties();
        prop.load(new FileReader("d:\\test\\prop.properties"));
        Set<String> set=prop.stringPropertyNames();
        for (String s:set){
            System.out.println(prop.getProperty(s));
        }
    }
}

FileWriter:

public class Demo06Writer {
    public static void main(String[] args) throws IOException {
        FileWriter fw = new FileWriter("d:\\test\\a.txt",true);
        fw.write("\r\n");
        fw.write("我是啦啦啦");
        fw.flush();
        fw.close();
    }
}

OutputStreamWriter

public class Demo01OutputStreamWriter {
    public static void main(String[] args) throws IOException {
        writer_utf_8();
    }

    private static void writer_utf_8() throws IOException {

        OutputStreamWriter osw = new OutputStreamWriter(new FileOutputStream("d:\\test\\c.txt"),"utf-8");
        osw.write("你好");
        osw.flush();
        osw.close();
    }
}

ObjectInputStream与ObjectOutputStream

import java.io.Serializable;

public class Person implements Serializable {
    private String name;
    private int age;

    public Person() {
    }

    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}

public class Demo01ObjectStream {
    public static void main(String[] args) throws IOException, ClassNotFoundException {
        show01();
        show02();
    }

    private static void show02() throws IOException, ClassNotFoundException {
        ObjectInputStream oos = new ObjectInputStream(new FileInputStream("d:\\test\\person.txt"));
        Object o = oos.readObject();
        oos.close();
        System.out.println(o);
    }

    private static void show01() throws IOException {
        ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("d:\\test\\person.txt"));

        oos.writeObject(new Person("zhangsan",18));

        oos.close();
    }
}



版权声明:本文为m0_46540089原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。