java io
文章平均质量分 91
xushiyu1996818
这个作者很懒,什么都没留下…
展开
-
java IO理论总结
注意:本文参考docs/java/basis/io.md · SnailClimb/JavaGuide - Gitee.com何为 I/O?I/O(Input/Output) 即输入/输出 。我们先从计算机结构的角度来解读一下 I/O。根据冯.诺依曼结构,计算机结构分为 5 大部分:运算器、控制器、存储器、输入设备、输出设备。输入设备(比如键盘)和输出设备(比如显示器)都属于外部设备。网卡、硬盘这种既可以属于输入设备,也可以属于输出设备。输入设备向计算机输入数据,输出...原创 2022-02-21 21:57:01 · 174 阅读 · 0 评论 -
java io Scanner源码分析
目录简介各种字段和匹配的正则表达式13个构造函数,方法toCharset,3个makeReadable,toDecoder方法saveState,2个revertState,2个cacheResult,clearCaches,getCachedResult,useTypeCache方法readInput,makeSpace,translateSavedIndexes,throwFor方法hasTokenInBuffer,getCompleteTokenInBuffer,findPat原创 2021-01-01 12:20:45 · 729 阅读 · 0 评论 -
io,nio,aio的区别与基础使用
IO 介绍我们通常所说的 BIO 是相对于 NIO 来说的,BIO 也就是 Java 开始之初推出的 IO 操作模块,BIO 是 BlockingIO 的缩写,顾名思义就是阻塞 IO 的意思。BIO、NIO、AIO的区别BIO 就是传统的 java.io 包,它是基于流模型实现的,交互的方式是同步、阻塞方式,也就是说在读入输入流或者输出流时,在读写动作完成之前,线程会一直阻塞在那里,它们之间的调用时可靠的线性顺序。它的有点就是代码比较简单、直观;缺点就是 IO 的效率和扩展性很低,容易成为应用性原创 2020-06-10 15:28:49 · 567 阅读 · 0 评论 -
java io StreamEncoder源码分析
目录实例域构造方法StreamEncoder流与OutputStreamWriter构造函数的联系write方法implWrite(cbuf, off, len)方法writeBytes()方法colse方法再次理解StreamEncoder、OutputStreamWriter、FileWriter注意:本文参考 https://blog.csdn.net/ai_bao_zi/article/details/81181198实例域 //默认的字节缓冲..原创 2020-11-18 22:18:16 · 249 阅读 · 0 评论 -
java io StreamDecoder源码分析
https://blog.csdn.net/ai_bao_zi/article/details/81205286原创 2020-11-18 22:00:49 · 446 阅读 · 0 评论 -
java io PipedInputStream源码分析
目录简介字段closedByWriter,closedByReader,connected,readSide,writeSide,buffer,in,out4个构造函数,方法initPipe,connected2个receive方法,checkStateForReceive方法,awaitSpace方法,receivedLast方法2个read方法,available方法,close方法简介package java.io;/** * 管道输入流应该连接到管道输出流;原创 2020-11-18 21:43:54 · 341 阅读 · 0 评论 -
java io PipedOutputStream源码分析
目录简介字段sink,2个构造函数connect方法,2个write方法flush方法,close方法简介package java.io;import java.io.*;/** * 可以将管道输出流连接到管道输入流以创建通信管道。 * 管道输出流是管道的发送端。 * 通常,数据由一个线程写入到PipedOutputStream对象,数据由其他线程从连接的PipedInputStream读取。 * 不建议在一个线程中同时使用两个对象,因为这可能导致线程死锁。 *原创 2020-11-18 21:43:19 · 214 阅读 · 0 评论 -
java io PrintStream源码分析
目录简介字段autoFlush,trouble,formatter,textOut,charOut,方法requireNonNull,toCharset3个私有构造函数,7个公共构造函数字段closing,方法ensureOpen,flush,close,checkError,setError,clearError2个公共write方法,2个私有write方法,newLine方法9个print方法10个println方法2个printf方法,2个format方法,3个appe原创 2020-11-17 23:07:58 · 322 阅读 · 2 评论 -
java io PrintWriter源码分析
目录简介字段out,autoFlush,trouble,formatter,psOut,lineSeparator,toCharset方法9个构造函数方法ensureOpen,flush,close,checkError,setError,clearError5个write方法,newLine方法9个print方法10个println方法2个printf方法,2个format方法,3个append方法简介package java.io;import java.u原创 2020-11-17 23:02:00 · 281 阅读 · 0 评论 -
java io BufferedWriter源码分析
目录简介字段out,cb,nChars,nextChar,defaultCharBufferSize,lineSeparator,两个构造函数方法ensureOpen,flushBuffer,write,min2个write方法,方法newLine,flush,close简介package java.io;/** * 将文本写入字符输出流,缓冲字符,以便有效地编写单个字符、数组和字符串。 * * <p> 可以指定缓冲区大小,也可以接受默认大小。 * 缺省值原创 2020-11-17 23:00:58 · 219 阅读 · 1 评论 -
java io OutputStreamWriter源码分析
简介package java.io;import java.nio.charset.Charset;import java.nio.charset.CharsetEncoder;import sun.nio.cs.StreamEncoder;/** * OutputStreamWriter是一个从字符流到字节流的桥梁: * 写入到它的字符使用指定的Charset成为字节。 * 它使用的字符集可以通过名称指定或明确给出,也可以接受平台的默认字符集。 * * <p> 对原创 2020-11-17 22:59:59 · 256 阅读 · 2 评论 -
java io FileWriter源码分析
package java.io;/** * 写字符文件的方便类。 * 这个类的构造函数假定默认的字符编码和默认的字节缓存都是可以接受的。 * 要自己指定这些值,请在FileOutputStream上构造一个outputstreamwriter。 * * <p>文件是否可用或是否可以创建取决于底层平台。 * 特别是,某些平台一次只允许一个FileWriter(或其他文件写入对象)打开一个文件进行写入。 * 在这种情况下,如果涉及的文件已经打开,该类中的构造函数将失败。 *.原创 2020-11-17 22:59:20 · 252 阅读 · 0 评论 -
java io StringWriter源码分析
目录简介字段buf,2个构造函数4个write方法,3个append方法方法toString,getBuffer,flush,close简介package java.io;/** * 在字符串缓冲区中收集其输出的字符流,然后可用于构造字符串。 * <p> * 关闭StringWriter没有效果。这个类中的方法可以在流被关闭后调用,而不会产生IOException。 * * @author Mark Reinhold * @since原创 2020-11-17 22:57:53 · 168 阅读 · 1 评论 -
java io CharArrayWriter源码分析
目录简介字段buf,count,两个构造函数3个write方法,writeTo方法3个append方法方法reset,toCharArray,size,toString,flush,close简介package java.io;import java.util.Arrays;/** * 这个类实现了一个可以用作Writer的字符缓冲区。 * 当数据写入流时,缓冲区会自动增长。 * 可以使用toCharArray()和toString()检索数据。 * <P原创 2020-11-12 23:09:28 · 109 阅读 · 0 评论 -
java io Writer源码分析
目录简介字段writeBuffer,WRITE_BUFFER_SIZE,lock,两个构造函数5个write方法3个append方法,flush方法,close方法简介package java.io;/** * 用于写入字符流的抽象类。 * 子类必须实现的唯一方法是write(char[], int, int), flush()和close()。 * 然而,大多数子类会覆盖这里定义的一些方法,以提供更高的效率,额外的功能,或两者兼有。 * * @see Writer原创 2020-11-12 23:07:55 · 321 阅读 · 0 评论 -
java io PushbackReader源码分析
目录简介字段buf,pos,两个构造函数,ensureOpen方法2个read方法,3个unread方法其余方法简介package java.io;/** * 允许将字符推回流中的一种字符流阅读器。 * * @author Mark Reinhold * @since JDK1.1 */public class PushbackReader extends FilterReader 字段buf,pos,两个构造函数,ensureOp原创 2020-11-12 23:07:04 · 138 阅读 · 0 评论 -
java io FilterReader源码分析
package java.io;/** * 用于读取过滤后的字符流的抽象类。 * 抽象类FilterReader本身提供了将所有请求传递到所包含流的默认方法。 * FilterReader的子类应该覆盖这些方法中的一些,还可能提供额外的方法和字段。 * * @author Mark Reinhold * @since JDK1.1 */public abstract class FilterReader extends Reader { /** .原创 2020-11-12 23:01:06 · 106 阅读 · 0 评论 -
java io BufferedReader源码分析
目录简介字段in,cb,nChars,nextChar,markedChar,readAheadLimit,skipLF,markedSkipLF两个构造函数,ensureOpen方法,fill方法3个read方法,2个readLine方法其余方法简介package java.io;import java.util.Iterator;import java.util.NoSuchElementException;import java.util.Spliterator原创 2020-11-12 23:00:19 · 253 阅读 · 1 评论 -
java io FileReader源码分析
package java.io;/** * 用于读取字符文件的便利类。 * 这个类的构造函数假设默认的字符编码和默认的字节缓冲大小是合适的。 * 要自己指定这些值,请在FileInputStream上构造一个InputStreamReader。 * * <p>FileReader是用来读取字符流的。 * 对于读取原始字节流,可以考虑使用FileInputStream。 * * @see InputStreamReader * @see FileInputStream .原创 2020-11-11 20:30:54 · 189 阅读 · 0 评论 -
java io InputStreamReader源码分析
目录简介字段sd,4个构造函数getEncoding方法,read方法,ready方法,close方法简介package java.io;import java.nio.charset.Charset;import java.nio.charset.CharsetDecoder;import sun.nio.cs.StreamDecoder;/** * InputStreamReader是从字节流到字符流的桥梁: * 它读取字节并使用指定的字符集将它们解码为字符。原创 2020-11-11 20:30:14 · 347 阅读 · 1 评论 -
java io StringReader源码分析
目录简介字段str,length,next,mark,构造函数ensureOpen方法,2个read方法,skip方法方法ready,markSupported,mark,reset,close简介/** * 源为字符串的字符流。 * * @author Mark Reinhold * @since JDK1.1 */public class StringReader extends Reader字段str,length,next,mar原创 2020-11-11 20:29:30 · 383 阅读 · 1 评论 -
java io CharArrayReader源码分析
目录简介字段buf,pos,markedPos,count,两个构造函数ensureOpen方法,2个read方法,skip方法方法ready,markSupported,mark,reset,close简介/** * 这个类实现了一个字符缓冲区,它可以用作字符输入流。 * * @author Herb Jellinek * @since JDK1.1 */public class CharArrayReader extends Reader原创 2020-11-11 20:28:49 · 231 阅读 · 0 评论 -
java io Reader源码分析
目录简介字段lock,两个构造函数4个read方法字段maxSkipBufferSize,字段skipBuffer,skip方法方法ready,markSupported,mark,reset,close简介/** * 用于读取字符流的抽象类。子类必须实现的唯一方法是read(char[], int, int)和close()。 * 然而,大多数子类将重写这里定义的一些方法,以提供更高的效率、额外的功能,或者同时提供这两种功能。 * * * @see Buffered原创 2020-11-11 20:27:59 · 250 阅读 · 1 评论 -
java io BufferedOutputStream源码分析
目录简介字段buf,count,2个构造函数两个flush方法,两个write方法简介package java.io;/** * 该类实现缓冲输出流。 * 通过建立一个这样的输出流,应用程序可以将很多字节一次写入到依赖的输出流,而不必为每个写入的字节调用依赖的输出流的write方法。 * * @author Arthur van Hoff * @since JDK1.0 */publicclass BufferedOutputStream extends Fi原创 2020-11-11 20:26:59 · 151 阅读 · 0 评论 -
java io FilterOutputStream源码分析
目录简介全部字段和方法简介/** * 这个类是过滤输出流的所有类的超类。 * 这些流位于一个已经存在的输出流(底层输出流)之上,它使用这个输出流 * 作为它的基本数据接收器,但也可能在过程中转换数据或提供额外的功能。 * <p> * 类FilterOutputStream本身只是覆盖了OutputStream的所有方法,并使用将请求传递给底层输出流的版本。 * FilterOutputStream的子类可以进一步覆盖其中的一些方法,并提供额外的方法和字段。 *原创 2020-11-11 20:26:11 · 216 阅读 · 0 评论 -
java io FileOutputStream源码分析
简介package java.io;import java.nio.channels.FileChannel;import sun.nio.ch.FileChannelImpl;/** * 文件输出流是将数据写入文件或文件描述符的输出流。 * 文件是否可用或可能被创建取决于底层平台。 * 特别是一些平台,每次只允许一个FileOutputStream(或其他文件写入对象)打开文件以写入。 * 在这种情况下,如果所涉及的文件已经打开,则该类中的构造函数将失败。 * * <p原创 2020-11-11 20:24:31 · 450 阅读 · 0 评论 -
java io ByteArrayOutputStream源码分析
简介package java.io;import java.util.Arrays;/** * 这个类实现了一个输出流,其中数据被写入字节数组中。 * 当数据写入缓冲区时,缓冲区会自动增长。 * 可以使用toByteArray()和toString()获得数据。 * <p> * 关闭ByteArrayOutputStream没有任何效果。 * 该类中的方法可以在流被关闭后调用,而无需生成IOException。 * * @author Arthur van Hof原创 2020-11-09 10:35:05 · 304 阅读 · 0 评论 -
java io OutputStream源码分析
简介/** * 这个抽象类是所有表示字节输出流的类的超类。 * 输出流接受输出字节并将其发送到某个接收器。 * <p> * 需要定义OutputStream子类的应用程序必须 * 始终至少提供一个write(int)方法。 * * @author Arthur van Hoff * @see java.io.BufferedOutputStream * @see java.io.ByteArrayOutputStream * @see java原创 2020-11-06 15:52:42 · 219 阅读 · 0 评论 -
java io PushbackInputStream源码分析
目录简介字段buf,pos,方法ensure,两个构造函数两个read方法,三个unread方法available和skip方法其他方法简介/** * PushbackInputStream将功能添加到另一个输入流,也就是“push back”或“unread”一个字节的能力。 * 当代码片段读取一个特定的字节值,代表一个不确定数量的数据字节,这很方便; * 在读取了终止字节之后,代码片段可以“未读取”它,以便输入流上的下一个读取操作将重新读取被推回的字节。 * 例如,原创 2020-11-06 14:31:46 · 365 阅读 · 0 评论 -
java io DataInputStream源码分析
目录简介构造函数,字段bytearr,chararr两个read方法,两个readFully方法,skipBytes方法读取单个或两个或四个字节的方法,readBoolean/Byte/UnsignedByte/Short/UnsignedShort/Char/Int字段readBuffer和读取8个字节的长数字方法readLong/Float/Double字段lineBuffer和readLine方法和两个readUTF方法简介package java.io;/**原创 2020-11-06 09:33:40 · 343 阅读 · 0 评论 -
java io BufferedInputStream源码分析
目录简介字段DEFAULT_BUFFER_SIZE,MAX_BUFFER_SIZE,buf,bufUpdater,count,pos,markpos,marklimit两个getXXXOpen方法,两个构造函数fill方法和3个read方法其余方法简介package java.io;import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;/** * BufferedInputStream将缓冲输入并支原创 2020-11-05 14:10:26 · 218 阅读 · 0 评论 -
java io FilterInputStream源码分析
目录简介字段in,构造函数其余方法简介/** * FilterInputStream包含一些其他的输入流,它使用这些输入流作为 * 它的基本数据源,可能在过程中转换数据或提供额外的功能。 * 类FilterInputStream本身简单地覆盖了InputStream的所有方法,其版本将所有请求传递给包含的InputStream。 * FilterInputStream的子类可以进一步覆盖其中的一些方法,还可以提供其他方法和字段。 * * @author Jonathan原创 2020-10-30 16:51:42 · 252 阅读 · 0 评论 -
java io SequenceInputStream源码分析
目录简介基础属性 e,in,构造函数2个,nextStream方法available,两个read,close方法简介/** * SequenceInputStream表示其他inputstream的逻辑连接。 * 它从一个有序的输入流集合开始,从第一个开始读取,直到到达文件末尾, * 然后从第二个开始读取,以此类推,直到到达所包含的最后一个输入流的文件末尾。 * * @author Author van Hoff * @since JDK1.0 */public原创 2020-10-30 14:39:11 · 186 阅读 · 0 评论 -
java io FileInputStream源码分析
目录简介3个构造器函数open,read方法其余方法简介package java.io;import java.nio.channels.FileChannel;import sun.nio.ch.FileChannelImpl;/** * FileInputStream从文件系统中的文件中获取输入字节。 * 可用的文件取决于主机环境。 * * <p>FileInputStream用于读取原始字节流,比如图像数据。 * 对于读取字符流,可以考虑使用原创 2020-10-29 14:12:13 · 473 阅读 · 0 评论 -
java io ByteArrayInputStream源码分析
目录简介buf,pos,mark,count两个构造函数两个read方法其余方法简介/** * ByteArrayInputStream包含一个内部缓冲区,其中包含可以从流中读取的字节。 * 一个内部的计数器将跟踪read方法提供的下一个字节。 * <p> * 关闭ByteArrayInputStream没有任何效果。 * 该类中的方法可以在流被关闭后调用,并且无需生成IOException。 * * @author Arthur van Hoff原创 2020-10-28 10:44:17 · 241 阅读 · 0 评论 -
java io InputStream源码分析
目录简介三个readskip,available,closemark,reset,markSupported简介/** * InputStream,这个抽象类是所有代表字节输入流的类的父类。 * * <p>需要定义InputStream的子类的程序,必须始终提供返回下一个输入字节的方法。 * * @author Arthur van Hoff * @see java.io.BufferedInputStream * @see java.原创 2020-10-27 10:45:40 · 278 阅读 · 0 评论 -
java io和nio系列总结
源码分析说明本次源码分析基本是基于JAVA_VERSION="1.8.0_112" 的jdk版本IO系列字节流-输入流InputStream字节流-输出流字符流-输入流字符流-输出流...原创 2020-10-27 10:47:51 · 293 阅读 · 0 评论