Java: IO流(标准输入、标准输出、打印流等)

Class CharArrayReader
这个类实现了一个可以用作字符输入流的字符缓冲区。

常用方法
int read()
Reads a single character.
读取一个字符

int read​(char[] b, int off, int len)
Reads characters into a portion of an array.
读取多个字符到数组中

测试

public class demo1 {

    public static void main(String[] args) {
        char[] buffer= new char[1024];
        CharArrayReader charArrayReader = new CharArrayReader("BAT".toCharArray());
        int length = 0;
        try {
            while ((length = charArrayReader.read(buffer)) != -1) {
                System.out.println(buffer);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            charArrayReader.close();
        }

    }
}

CharArrayWriter

public class demo2 {

    public static void main(String[] args) {
        CharArrayWriter charArrayWriter = new CharArrayWriter();
        charArrayWriter.write(97);
        charArrayWriter.write(98);
        charArrayWriter.write(99);
        System.out.println(charArrayWriter);
        charArrayWriter.close();
    }
}

BufferedReader

特殊方法

String readLine()
Reads a line of text.
读取一行

测试

public class demo1 {

    public static void main(String[] args) {

        BufferedReader reader = null;

        try {
            reader = new BufferedReader(new FileReader("abc.txt"));
            String read = null;
            while((read = reader.readLine())!= null){
                System.out.println(read);
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                reader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

BufferedWriter

特殊方法

void newLine()
Writes a line separator.
换行

测试

public class demo2 {

    public static void main(String[] args) {

        BufferedWriter bufferedWriter = null;
        FileWriter fileWriter = null;

        try {
            fileWriter  = new FileWriter(new File("aaa.txt"));
            bufferedWriter = new BufferedWriter(fileWriter);
            bufferedWriter.write("bufferwriter");
            bufferedWriter.newLine();
            bufferedWriter.append("append");
            bufferedWriter.flush();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                fileWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                bufferedWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

标准输入、标准输出

标准输入:System.in
标准输出:System.out
错误输出:System.err

实现在控制台输入内容,自动打印输入的内容,当输入exit时结束程序。

public class test {

    public static void main(String[] args) {
        InputStreamReader inputStreamReader = new InputStreamReader(System.in);
        OutputStreamWriter outputStreamWriter = new OutputStreamWriter(System.out);
        BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
        BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
        try {
        String str = "";
        while(!str.equals("exit")){
                str = bufferedReader.readLine();
                bufferedWriter.write(str);
                bufferedWriter.flush();

        } } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                inputStreamReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                outputStreamWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                bufferedReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                bufferedWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

省略写法:


public class test2 {

    public static void main(String[] args) {
        try(        InputStreamReader inputStreamReader = new InputStreamReader(System.in);
                    OutputStreamWriter outputStreamWriter = new OutputStreamWriter(System.out);
                    BufferedWriter bufferedWriter = new BufferedWriter(outputStreamWriter);
                    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);) {
        String str = "";
        while(!str.equals("exit")){
                str = bufferedReader.readLine();
                bufferedWriter.write(str);
                bufferedWriter.flush();

        } } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

通过IO流读取网页源代码

public class test3 {

    public static void main(String[] args) {

        BufferedReader bufferedReader = null;
        BufferedWriter bufferedWriter = null;

        try {
            bufferedReader = new BufferedReader(new InputStreamReader(new URL("http://www.baidu.com").openStream(), "utf-8"));
            bufferedWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("baidu.html")));

            String msg = null;
            while ((msg = bufferedReader.readLine()) != null) {
                bufferedWriter.write(msg);
                bufferedWriter.newLine();
            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            try {
                bufferedReader.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try {
                bufferedWriter.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

打印流

public class demo {

    public static void main(String[] args) {
        PrintStream printStream =null;
        try {
            printStream = new PrintStream(System.out);
            printStream.write("hello,world".getBytes());
            printStream.println(true);
            System.out.println();
            //格式化输出
            System.out.printf("%s--%d--%.2f","abc",111,111.111);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            printStream.close();
        }


    }
}

IO流总结

在这里插入图片描述

发布了40 篇原创文章 · 获赞 1 · 访问量 1100

猜你喜欢

转载自blog.csdn.net/weixin_44495162/article/details/103455225