java的输入和输出为什么要那么复杂?
Java的IO设计的确很复杂,很多朋友在使用时IO时被各种各样的流弄的晕头转向。
大致情况如下
以Stream结尾的为字节流,以Writer或者Reader结尾的为字符流,所有的输入流都是抽象类IuputStream(字节输入流)或者抽象类Reader(字符输入流)的子类。所有的输出流都是抽象类OutputStream(字节输出流)或者抽象类Writer(字符输出流)的子类之所以IO那么复杂,是为了更好的应对各种场景,比如
BufferedWriter 从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。由于继承了FilterInputStream,其可用于包装装饰其他流使它们提高效率,既采用了装饰设计模式。InputStreamReader和OutputStreamWriter转换流,作为字符和字节的桥梁对象操作流ObjectInputStream和ObjectOutputStream用于Java 对象的基本数据类型和图形读写。用于操作数组ByteArrayInputStream,字符串StringWriter等流区分技巧,下面分享下我找到的一份IO使用技巧总结
IO设计非常复杂不过其目标还是为了能更好的应对各种场景使用更适合的流提高效率。希望我的回答对你有所帮助。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有