JAVA IO流 InputStream流 Read方法】的更多相关文章

Java IO 文件与流基础 @author ixenos 摘要:创建文件.文件过滤.流分类.流结构.常见流.文件流.字节数组流(缓冲区) 如何创建一个文件 #当我们调用File类的构造器时,仅仅是在运行时创建了一个File对象,而不是在文件系统中创建了一个文件.File类可以表示文件系统中存在的目录或文件,也可以表示尚不存在的 #File.separator是一个跨平台的分隔符 (Win用"\",同时"\"又做反义字符,所以"\\"才表示分隔符…
一.处理流: 增强功能,提供性能,在节点流之上. 二.节点流与处理流的关系 节点流(字节流.字符流)处于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…
Java IO (1) - InputStream 前言 JavaIO一共包括两种,一种是stream,一种是reader/writer,每种又包括in/out,所以一共是四种包.Java 流在处理上分为字符流和字节流.字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符.字符数组或字符串,而字节流处理单元为 1 个字节,操作字节和字节数组. Java 内用 Unicode 编码存储字符,字符流处理类负责将外部的其他编码的字符流和 java 内 Unicode 字符流之间的转换.…
前面的博文介绍了字节流,那字符流又是什么流?从字面意思上看,字节流是面向字节的流,字符流是针对unicode编码的字符流,字符的单位一般比字节大,字节可以处理任何数据类型,通常在处理文本文件内容时,字符流可以一个一个字符的读取,也可以一行一行字符的读取. 字符流类型 字符流类型包括Writer和Reader及其子类如图所示 Writer的子类 名称 说明 BufferedWriter 将文本写入字符输出流,缓冲各个字符,从而提供单个字符.数组和字符串的高效写入. CharArrayWriter…
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显示了一种非常简单的截取控制…
序列流 也称为合并流. SequenceInputStream 序列流,对多个流进行合并. SequenceInputStream 表示其他输入流的逻辑串联.它从输入流的有序集合开始,并从 第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达 包含的最后一个输入流的文件末尾为止. 注意: 构造函数 SequenceInputStream(InputStream s1, InputStream s2) SequenceInputStream(InputStream s…
在java.io包里面File类是唯一 一个与文件本身有关的程序处理类,但是File只能够操作文件本身而不能够操作文件的内容,或者说在实际的开发之中IO操作的核心意义在于:输入与输出操作.而对于程序而言,输入与输出可能来自于不同的环境,例如:通过电脑连接服务器上进行浏览的时候,实际上此时客户端发出了一个信息,而后服务器接收到此信息之后进行回应处理. 对于服务器或者是客户端而言实际上传递的就是一种数据流的处理形式,而所谓的数据流指的就是字节数据.而对于这种流的处理形式在java.io包里面提供有两…
一.java.io中存在一中流叫管道流,类似管道的功能.PipedOutputStream和PipedInputStream分别是管道输出流和管道输入流.这个两个流必须同时使用. 二.作用:进行两个线程间的通信.一个线程作为管道输出流,另一个线程作为管道输入流,在启动线程前,只需要将这两个线程的管道流连接到一起就可以. 这要就很方便的实现了两个线程间的通信. 三.例子(我这里谢了一个简单的例子.来说明不同线程之间的读写情况) import java.io.PipedInputStream; im…
目录:系统学习 Java IO---- 目录,概览 PipedInputStream 类使得可以作为字节流读取管道的内容. 管道是同一 JVM 内的线程之间的通信通道. 使用两个已连接的管道流时,要为每个流操作创建一个线程, read() 和 write() 都是阻塞方法,如果一个线程同时读写就会造成死锁 看一个例子: public class Pipe { public static void main(String[] args) throws IOException { final Pip…
所谓的转换流指的是可以实现字节流与字符流操作的功能转换,例如:进行输出的时候OutputStream需要将内容变为字节数组后才可以进行输出,而Writer可以直接输出字符串,这一点是方便的,所以很多人就认为需要提供有一种转换的机制,来实现不同流类型的转化操作,为此在java.io包里面提供有两个类:InputStreamReader.OutputStreamWriter. 类 InputStreamReader: OutputStreamWriter: 定义 public class Outpu…
Writer      :BYSocket(泥沙砖瓦浆木匠) 微         博:BYSocket 豆         瓣:BYSocket FaceBook:BYSocket Twitter    :BYSocket 一.InputStream InputStream是一个抽象类,即表示所有字节输入流实现类的基类.它的作用就是抽象地表示所有从不同数据源产生输入的类,例如常见的FileInputStream.FilterInputStream等.那些数据源呢?比如: 1) 字节数组(不代表S…
IO流用来处理设备之间的数据传输        Java对数据的操作是通过流的方式        Java用于操作流的对象都在IO包中 File类在整个IO包中与文件本身有关的操作类,所有的与文件本身有关指的是创建.删除文件等操作.在java.io包中的File类本身是一个跨平台的文件操作类,所以在操作中要更多的考虑到各个操作系统的区别. File 即指文件也指文件夹. File类构造方法和字段摘要 static String pathSeparator  路径分隔符,window下是";&qu…
今天用ObjectOutputStream和ObjectInputStream进行对象序列化话操作的时候,报了java.io.EOFException异常. 异常代码如下: java.io.EOFException at java.io.ObjectInputStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2554) at java.io.ObjectInputStream.readObject0(ObjectInputSt…
read()首先我们来看这个没有参数的read方法,从(来源)输入流中(读取的内容)读取数据的下一个字节到(去处)java程序内部中,返回值为0到255的int类型的值,返回值为字符的ACSII值(如a就返回97,n就返回110).如果没有可用的字节,因为已经到达流的末尾, -1返回的值,运行一次只读一个字节,所以经常与while((len = inputstream.read()) != -1)一起使用. read(byte [] b )从(来源)输入流中(读取内容)读取的一定数量字节数,并将…
字符流 计算机并不区分二进制文件与文本文件.所有的文件都是以二进制形式来存储的,因此, 从本质上说,所有的文件都是二进制文件.所以字符流是建立在字节流之上的,它能够提供字符 层次的编码和解码.列如,在写入一个字符时,Java虚拟机会将字符转为文件指定的编码(默认 是系统默认编码),在读取字符时,再将文件指定的编码转化为字符. 常见的码表如下: ASCII:           美国标准信息交换码.用一个字节的7位可以表示. ISO8859-1:   拉丁码表.欧洲码表,用一个字节的8位表示.又称…
目录:系统学习 Java IO---- 目录,概览 PushbackInputStream 旨在从 InputStream 解析数据时使用. 有时您需要先读取几个字节以查看将要发生的事情,然后才能确定如何解释当前字节, PushbackInputStream 允许这样做. 实际上,它允许将读取的字节推回到流中,这样就像流没有被动过,下次调用 read() 时,将再次重新读取.通俗来讲,就像男人对女人(Stream)说:我只看看,不动手. 构造器 PushbackInputStream(Input…
目录:系统学习 Java IO---- 目录,概览 这两个流的作用是:"封装其它的输入流,并为它们提供额外的功能" 他们的直接子类有: BufferedInputStream 的作用就是为"输入流提供缓冲功能,以及 mark() 和 reset() 功能" DataInputStream 是用来装饰其它输入流,它"允许应用程序以与机器无关方式从底层输入流中读取基本 Java 数据类型" 接下来我们会对具体每一个展开分析的. FilterInput…
在<Java网络编程>中,有这样一段话: ”Reader和Writer最重要的子类是InputStreamReader和OutputStreamWriter类. InputStreamReader类包含了一个底层输入流,可以从中读取原始字节.它根据指定的编码方式,将这些字节转换为Unicode字符. OutputStreamWriter从运行的程序中接收Unicode字符,然后使用指定的编码方式将这些字符转换为字节,再将这些字节写入底层输出流中.“ 转换流的特点: 1. 其是字符流和字节流之间…
body, table{font-family: 微软雅黑} table{border-collapse: collapse; border: solid gray; border-width: 2px 0 2px 0;} th{border: 1px solid gray; padding: 4px; background-color: #DDD;} td{border: 1px solid gray; padding: 4px;} tr:nth-child(2n){background-co…
在上一节,介绍了字节流的基本使用,本节介绍一下字符流的使用 Reader: public abstract class Reader implements Readable, Closeable { protected Object lock; private static final int maxSkipBufferSize = 8192; private char[] skipBuffer = null; protected Reader() { this.lock = this; } p…
目录:系统学习 Java IO---- 目录,概览 PrintStream 类可以将格式化数据写入底层 OutputStream 或者直接写入 File 对象. PrintStream 类可以格式化基本类型,如int,long等格式化为文本,而不是其字节值. 这就是为什么它被称为 PrintStream ,因为它将原始字节格式化为文本 - 就像它们在打印到屏幕(或打印到纸张)时看起来一样. 构造器 方法 描述 PrintStream(File file) 创建具有指定文件且不带自动行刷新的新打印…
目录:系统学习 Java IO---- 目录,概览 BufferedInputStream BufferedInputStream 类为输入流提供缓冲. 缓冲可以加快IO的速度. BufferedInputStream 不是一次从网络或磁盘读取一个字节,而是一次将更大的块读入内部缓冲区. 当从 BufferedInputStream 读取一个字节时,您正在从其内部缓冲区中读取它. 当缓冲区被完全读取时,BufferedInputStream 将另一个更大的数据块读入缓冲区. 这通常比从 Inpu…
字符流:尽管字节流提供了处理任何类型输入/输出操作的足够功能,它们补鞥呢直接操作Unicode字符.字符流层次结构的顶层是Reader和Writer抽象类.类似于InputStream和OutputStram Unicode使用两个字节来表示一个字符,即一个字符占16位 一.Reader的类层次结构 二.Writer的类层次结构 三.Demo public class StreamTest { public static void main(String[] args) throws Excep…
public static void main(String[] args) { FileWriter fw = null; try { fw = new FileWriter("/Users/weianlai/demo"); fw.write("这是一个demo"); fw.flush(); } catch (IOException e) { e.printStackTrace(); } finally { if (fw != null) { try { fw.c…
解决方法:1.找到apache-jmeter-5.0\bin\jmeter.properties 2.修改server.rmi.ssl.disable=true (记得去除server.rmi.ssl.disable=true前的#),重新启动jmeter-server.bat 3.查看命令窗口显示则启动成功…
一.Broken pipe产生原因分析 1.当访问某个服务突然服务器挂了,就会产生Broken pipe; 2.客户端读取超时关闭了连接,这时服务器往客户端再写数据就发生了broken pipe异常! 二.方案 1.问题一分析服务器为什么挂了. 2.问题二使用jps/jstack分析线程栈,看是不是有线程阻塞.…
java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类? Java中的流分为两种,一种是字节流,另一种是字符流,分别由四个抽象类来表示(每种流包括输入和输出两种所以一共四个):InputStream,OutputStream,Reader,Writer.Java中其他多种多样变化的流均是由它们派生出来的. 字符流和字节流是根据处理数据的不同来区分的.字节流按照8位传输,字节流是最基本的,所有文件的储存是都是字节(byte)的储存,在磁盘上保留的并不是文件的…
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. IO流的分类 根据处理数据类型的不同分为:字符流和字节流 根据数据流向不同分为:输入流和输出流 字符流和字节流 字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象.本质其实就是基于字节流读取时,去查了指定的码表.字节流和字符流的区别…