目录:系统学习 Java IO---- 目录,概览 这两个流的作用是:"封装其它的输入流,并为它们提供额外的功能" 他们的直接子类有: BufferedInputStream 的作用就是为"输入流提供缓冲功能,以及 mark() 和 reset() 功能" DataInputStream 是用来装饰其它输入流,它"允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型" 接下来我们会对具体每一个展开分析的. FilterInput…
目录:系统学习 Java IO---- 目录,概览 PipedInputStream 类使得可以作为字节流读取管道的内容. 管道是同一 JVM 内的线程之间的通信通道. 使用两个已连接的管道流时,要为每个流操作创建一个线程, read() 和 write() 都是阻塞方法,如果一个线程同时读写就会造成死锁 看一个例子: public class Pipe { public static void main(String[] args) throws IOException { final Pip…
目录:系统学习 Java IO---- 目录,概览 PushbackInputStream 旨在从 InputStream 解析数据时使用. 有时您需要先读取几个字节以查看将要发生的事情,然后才能确定如何解释当前字节, PushbackInputStream 允许这样做. 实际上,它允许将读取的字节推回到流中,这样就像流没有被动过,下次调用 read() 时,将再次重新读取.通俗来讲,就像男人对女人(Stream)说:我只看看,不动手. 构造器 PushbackInputStream(Input…
目录:系统学习 Java IO---- 目录,概览 PrintStream 类可以将格式化数据写入底层 OutputStream 或者直接写入 File 对象. PrintStream 类可以格式化基本类型,如int,long等格式化为文本,而不是其字节值. 这就是为什么它被称为 PrintStream ,因为它将原始字节格式化为文本 - 就像它们在打印到屏幕(或打印到纸张)时看起来一样. 构造器 方法 描述 PrintStream(File file) 创建具有指定文件且不带自动行刷新的新打印…
目录:系统学习 Java IO---- 目录,概览 BufferedInputStream BufferedInputStream 类为输入流提供缓冲. 缓冲可以加快IO的速度. BufferedInputStream 不是一次从网络或磁盘读取一个字节,而是一次将更大的块读入内部缓冲区. 当从 BufferedInputStream 读取一个字节时,您正在从其内部缓冲区中读取它. 当缓冲区被完全读取时,BufferedInputStream 将另一个更大的数据块读入缓冲区. 这通常比从 Inpu…
Java IO 类的系统教程,原创.主要参考自英文教程 Java IO Tutorial 和 Java Doc. http://tutorials.jenkov.com/java-io/index.html 目的:掌握 Java IO 几乎所有类的基础用法,完全知道什么时候应该使用什么类. 分开学习,先系统学习 IO 所有的类,再另外学习 NIO . 目录: 系统学习 Java IO (一)----输入流和输出流 InputStream/OutputStream 系统学习 Java IO (二)…
目录:系统学习 Java IO ---- 目录,概览 InputStream 是Java IO API中所有输入流的父类. 表示有序的字节流,换句话说,可以将 InputStream 中的数据作为有序的字节序列读取. 这在从文件读取数据或通过网络接收时非常有用. InputStream 通常连接到某些数据源,如文件,网络连接,管道等 看如下代码片段: public class InputStreamExample { public static void main(String[] args)…
目录:系统学习 Java IO---- 目录,概览 ByteArrayInputStream 如果数据存储在数组中,ByteArrayInputStream 可以很方便读取,它可以返回 InputStream , 这样,ByteArrayInputStream 可以包装字节数组,并将其转换为流. 构造器 public ByteArrayInputStream(@NotNull byte[] buf) : 创建一个 ByteArrayInputStream ,以便它使用 buf 作为其缓冲区数组.…
目录:系统学习 Java IO---- 目录,概览 SequenceInputStream 可以将两个或多个其他 InputStream 合并为一个. 首先,SequenceInputStream 将读取第一个 InputStream 中的所有字节,然后读取第二个 InputStream 中的所有字节. 这就是它被称为 SequenceInputStream 的原因,因为 InputStream 实例是按顺序读取的. 构造方法 SequenceInputStream(InputStream s1…
目录:系统学习 Java IO---- 目录,概览 DataInputStream/DataOutputStream 允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型. 要想使用数据输出流和输入流,必须按指定的格式保存数据,才可以将数据输入流将数据读取进来,所以通常使用 DataInputStream 来读取 DataOutputStream 写入的数据. DataInputStream 类能够从 InputStream 中读取 Java 基本类型(int,float,lo…
目录:系统学习 Java IO---- 目录,概览 Java IO目的和功能 Java IO 包含 InputStream,OutputStream,Reader 和 Writer 类的许多子类. 原因是,所有这些子类都在解决各种不同的目的. 所涉及的目的总结如下: 网络访问 内部缓冲区访问 线程间通信(管道) 缓冲 过滤 解析 读写文本(Reader/Writer) 读写基本类型数据(long,int等) 读写对象 Java IO类概述表 在讨论了 Java IO 类所针对的源,目标,输入,输…
目录:系统学习 Java IO---- 目录,概览 BufferedReader BufferedReader 类构造器接收一个 Reader 对象,为 Reader 实例提供缓冲. 缓冲可以加快 IO 的速度. BufferedReader 不是一次从网络或磁盘读取一个字符,而是一次读取一个更大的块. 这通常要快得多,特别是对于磁盘访问和更大的数据量. 类似于 BufferedInputStream ,主要区别在于 BufferedReader 读取字符(文本),而 BufferedInput…
目录:系统学习 Java IO---- 目录,概览 Reader Reader 类是 Java IO API 中所有 Reader 子类的基类. Reader 类似于 InputStream ,除了它是基于字符而不是基于字节的. 换句话说, Reader 用于读取文本,而 InputStream 用于读取原始字节. Writer Writer 类是 Java IO API 中所有 Writer 子类的基类. Writer 就像一个 OutputStream ,除了它是基于字符而不是基于字节的.…
目录:系统学习 Java IO---- 目录,概览 文件输入流 FileInputStream 这是一个简单的FileInputStream示例: InputStream input = new FileInputStream("D:\\input.txt"); int data = input.read(); while(data != -1) { //do something with data... doSomethingWithData(data); data = input.…
目录:系统学习 Java IO---- 目录,概览 跟踪行号的缓冲字符输入流 LineNumberReader LineNumberReader 类是一个 BufferedReader ,用于跟踪读取字符的行号.行号从 0 开始.每当 LineNumberReader 在包装的 Reader 返回的字符中遇到行终止符时,行号递增. 可以通过调用 getLineNumber() 方法获取当前行号,也可以通过调用 setLineNumber() 方法设置当前行号. 注意设置的行号不会改变实际的文件指…
目录:系统学习 Java IO---- 目录,概览 Java IO API 中的 File 类可以访问基础文件系统. 使用 File 类,可以: 检查文件或目录是否存在. 如果目录不存在,创建一个目录. 读取文件的长度. 重命名或移动文件. 删除文件. 检查路径是文件还是目录. 读取目录中的文件列表. 注意:"File"仅允许访问文件和文件系统元数据. 如果需要读取或写入文件内容,则应使用 FileInputStream,FileOutputStream 或 RandomAccessF…
目录:系统学习 Java IO---- 目录,概览 我们使用流后,需要正确关闭 Streams 和 Readers / Writers . 这是通过调用 close() 方法完成的,看看下面这段代码: ```java InputStream input = new FileInputStream("D:\out.txt"); int data = input.read(); while(data != -1) { //do something with data... doSometh…
Java IO(九)FilterInputStream 和 FilterOutputStream 一.介绍 FilterInputStream 和 FilterOutputStream 是过滤字节输入流和过滤字节输出流.它们的作用是封装其他的基础流,并为它们提供额外的功能.它们的子类分别有: 缓冲流:BufferedInputStream 和 BufferedOutputStream 数据流:DataInputStream 和 DataOutputStream 回退流:PushBackInput…
Java IO 文件与流基础 @author ixenos 摘要:创建文件.文件过滤.流分类.流结构.常见流.文件流.字节数组流(缓冲区) 如何创建一个文件 #当我们调用File类的构造器时,仅仅是在运行时创建了一个File对象,而不是在文件系统中创建了一个文件.File类可以表示文件系统中存在的目录或文件,也可以表示尚不存在的 #File.separator是一个跨平台的分隔符 (Win用"\",同时"\"又做反义字符,所以"\\"才表示分隔符…
零基础如何系统学习Java Web?   我来给你说一说 你要下决心,我要转行做开发,这样你才能学成. 你要会打字,我公司原来有一个程序员,打字都是两个手一指禅,身为程序员你一指禅怎么写出的代码,半个月后被辞退了,当然我们还是朋友. 前两个条件都符合了你就可以学了,首先要了解web是什么,一般呢,java web开发无外乎就这么两大类,第一,互联网公司,第二,软件公司.对于互联网公司和软件公司还有一些差别,互联公司是面向广大网民的,会有专门的ui设计,前台开发,后台代码开发,ios开发,andr…
一.处理流: 增强功能,提供性能,在节点流之上. 二.节点流与处理流的关系 节点流(字节流.字符流)处于IO操作的第一线,所有操作必须通过它们进行: 处理流可以对其他流进行处理(提高效率或操作灵活性). 三.缓冲流 1.字节缓冲流 BufferedInputStream BufferedOutputStream package IOBuffer; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; im…
作者: Jakob Jenkov 译者: 李璟(jlee381344197@gmail.com) 本小节会简要概括Java IO中的PushbackReader,LineNumberReader,StreamTokenizer,PrintWriter,StringReader,StringWriter. PushbackReader 原文链接 PushbackReader与PushbackInputStream类似,唯一不同的是PushbackReader处理字符,PushbackInputSt…
前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字符流可以一个一个字符的读取,也可以一行一行字符的读取. 字符流类型 字符流类型包括Writer和Reader及其子类如图所示 Writer的子类 名称 说明 BufferedWriter 将文本写入字符输出流,缓冲各个字符,从而提供单个字符.数组和字符串的高效写入. CharArrayWriter…
序列流 也称为合并流. SequenceInputStream 序列流,对多个流进行合并. SequenceInputStream 表示其他输入流的逻辑串联.它从输入流的有序集合开始,并从 第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达 包含的最后一个输入流的文件末尾为止. 注意: 构造函数 SequenceInputStream(InputStream s1, InputStream s2) SequenceInputStream(InputStream s…
FilterInputStream 介绍 FilterInputStream 的作用是用来“封装其它的输入流,并为它们提供额外的功能”.它的常用的子类有BufferedInputStream和DataInputStream. BufferedInputStream的作用就是为“输入流提供缓冲功能,以及mark()和reset()功能”. DataInputStream 是用来装饰其它输入流,它“允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型”.应用程序可以使用DataOu…
Java程序中,一个字符等于两个字节. Reader 和 Writer 两个就是专门用于操作字符流的类. Writer Writer是一个字符流的抽象类.  它的定义如下: public abstract class Writer implements Appendable, Closeable, Flushable 直接子类 BufferedWriter,  CharArrayWriter,  FilterWriter,  OutputStreamWriter,  PipedWriter, …
要在文本框中显示控制台输出,我们必须用某种方法“截取”控制台流.换句话说,我们要有一种高效地读取写入到System.out和 System.err 所有内容的方法.如果你熟悉Java的管道流PipedInputStream和PipedOutputStream,就会相信我们已经拥有最有效的工 具. 写入到PipedOutputStream输出流的数据可以从对应的PipedInputStream输入流读取.Java的管道流极大地方便了我们截取控制台输出.Listing 1显示了一种非常简单的截取控制…
一.java.io中存在一中流叫管道流,类似管道的功能.PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流.这个两个流必须同时使用. 二.作用:进行两个线程间的通信.一个线程作为管道输出流,另一个线程作为管道输入流,在启动线程前,只需要将这两个线程的管道流连接到一起就可以. 这要就很方便的实现了两个线程间的通信. 三.例子(我这里谢了一个简单的例子.来说明不同线程之间的读写情况) import java.io.PipedInputStream; im…
在java.io包里面File类是唯一 一个与文件本身有关的程序处理类,但是File只能够操作文件本身而不能够操作文件的内容,或者说在实际的开发之中IO操作的核心意义在于:输入与输出操作.而对于程序而言,输入与输出可能来自于不同的环境,例如:通过电脑连接服务器上进行浏览的时候,实际上此时客户端发出了一个信息,而后服务器接收到此信息之后进行回应处理. 对于服务器或者是客户端而言实际上传递的就是一种数据流的处理形式,而所谓的数据流指的就是字节数据.而对于这种流的处理形式在java.io包里面提供有两…
所谓的转换流指的是可以实现字节流与字符流操作的功能转换,例如:进行输出的时候OutputStream需要将内容变为字节数组后才可以进行输出,而Writer可以直接输出字符串,这一点是方便的,所以很多人就认为需要提供有一种转换的机制,来实现不同流类型的转化操作,为此在java.io包里面提供有两个类:InputStreamReader.OutputStreamWriter. 类 InputStreamReader: OutputStreamWriter: 定义 public class Outpu…