Java IO简介

news/2024/8/26 13:48:58 标签: java, io, stream, string

Java 流在处理上分为字符流和字节流。

字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串;

字节流处理单元为 1 个字节,操作字节和字节数组。

( 一 )以字节为导向的流------InputStream/OutputStream

以字节为导向的流,表示以字节为单位从流中读取或往流中写入信息。以字节为导向的流包括下面几种类型:

1.1、InputStream

类图:

 


1)ByteArrayInputStream:把内存中的一个缓冲区作为InputStream使用

2)StringBufferInputStream:把一个String对象作为InputStream

3)FileInputStream:把一个文件作为InputStream,实现对文件的读取操作

4)PipedInputStream:实现了pipe的概念,主要在线程中使用

5)SequenceInputStream:把多个InputStream合并为一个InputStream

1.2.、OutputStream

类图:



1)ByteArrayOutputStream:把信息存入内存中的一个缓冲区中

2)FileOutputStream:把信息存入文件中

3)PipedOutputStream:实现了pipe的概念,主要在线程中使用

4)SequenceOutputStream:把多个OutStream合并为一个OutStream


( 二 )以字符为导向的流 Reader/Writer

以Unicode字符为导向的流,表示以Unicode字符为单位从流中读取或往流中写入信息。以Unicode字符为导向的流包括下面几种类型:

2.1、Reader

类图:



1)CharArrayReader:与ByteArrayInputStream对应

2)StringReader:与StringBufferInputStream对应

3)FileReader:与FileInputStream对应

4)PipedReader:与PipedInputStream对应

2.2、Writer

类图:



1)CharArrayWriter:与ByteArrayOutputStream对应

2)StringWriter:无与之对应的以字节为导向的stream

3)FileWriter:与FileOutputStream对应

4)PipedWriter:与PipedOutputStream对应

三、两种不同导向的流之间的转换

InputStreamReader和OutputStreamWriter:把一个以字节为导向的stream转换成一个以字符为导向的stream



http://www.niftyadmin.cn/n/1332000.html

相关文章

为啥查询那么慢?

1. MySQL查询慢是什么体验?大多数互联网应用场景都是读多写少,业务逻辑更多分布在写上。对读的要求大概就是要快。那么都有什么原因会导致我们完成一次出色的慢查询呢?1.1 索引在数据量不是很大时,大多慢查询可以用索引解决&#…

计算机方面经典书籍一

我的另一篇博客共享了一些优秀的书籍的电子版,参见 《计算机编程优秀书籍电子版共享(持续更新……)》 图灵教育官方博客:http://turingbooks.iteye.com/ Windows经典书籍 CSDN博客:http://blog.csdn.net/dadalan…

SpringBoot中的线程池,你真的会用么?

点击上方“果汁简历”,选择“置顶公众号”前言前两天做项目的时候,想提高一下插入表的性能优化,因为是两张表,先插旧的表,紧接着插新的表,一万多条数据就有点慢了后面就想到了线程池ThreadPoolExecutor&…

解决CRT(即C Run-Time)中函数的安全警告

解决CRT(即C Run-Time)中函数的安全警告 参考MSDN 1、Security Features in the CRT 2、Secure Template Overloads 是不是有时候碰到这样的警告: warning C4996: strcpy: This functionor variable may be unsafe. Consider using strc…

MySQL 是如何实现 ACID 的?

点击上方 果汁简历 ,选择“置顶公众号”优质文章,第一时间送达作者:无名鼠辈llc687.top/posts/数据库/mysql的acid写在前面本文主要探讨MySQL InnoDB 引擎下ACID的实现原理,对于诸如什么是事务,隔离级别的含义等基础知…

解决Windows 7 下不能双击打开jar文件

java打包后的jar文件有两种。 一、单一的jar包,例如在项目中使用的数据库厂商驱动,使用eclipse导入jar包就可以使用包中的类. 二、java打包成可执行的GUI应用程序. 这里要解决的问题就是:Windows 7下不能双击打开java打包成的可执行GUI应用程序. 有时候jar文件的…

Java程序添加托盘图标和托盘弹出菜单

Java 1.6后可以添加托盘图标和托盘图标弹出菜单变的很方便,一般代码如下: if (SystemTray.isSupported()) { // 判断是否支持系统托盘URL url this.getClass().getResource("/images/Trayicon.gif"); // 获取图片所在的URLImageIcon icon ne…

Spring 官宣,干掉原生 JVM!

Spring 团队日前发布了 Spring Native Beta 版。通过 Spring Native,Spring 应用将有机会与 GraalVM 原生镜像的方式运行。为了更好地支持原生运行,Spring Native 提供了 Maven 和 Gradle 插件,并且提供了优化原生配置的注解。Spring 发布了 …