字符流是针对字符数据的特点进行过优化的,因而提供一些面向字符的有用特性,字符流的源或目标通常是文本文件. Reader和Writer是java.io包中所有字符流的父类.由于它们都是抽象类,所以应使用它们的子类来创建实体对象,利用对象来处理相关的读写操作.Reader和Writer的子类又可以分为两大类:一类用来从数据源读入数据或往目的地写出数据(称为节点流),另一类对数据执行某种处理(称为处理流). 面向字符的输入流类都是Reader的子类,其类层次结构如图10-2所示. 图10-2 Read…
面向字符的输出流都是类 Writer 的子类,其类层次结构如图 10-5 所示. 图10-5 Writer的类层次结构图 表 10-3 列出了 Writer 的主要子类及说明. 表 10-3 Writer 的主要子类 类名 功能说明 CharArrayWriter 写到字符数组的输出流 BufferedWriter 缓冲输出字符流 PipedWriter 输出管道 OutputStreamWriter 转换字符到字节的输出流 FilterWriter 过滤输出流 StringWriter 输出到…
字节流以字节为传输单位,用来读写8位的数据,除了能够处理纯文本文件之外,还能用来处理二进制文件的数据.InputStream类和OutputStream类是所有字节流的父类. InputStream类 面向字节的输入流都是InputStream类的子类,其类层次结构如图10-6所示. 图10-6 InputStream的类层次结构图 表 10-5 列出了 InputStream 的主要子类及说明. 表 10-5 InputStream 的主要子类 类名 功能描述 FileInputStream…
文件输入输出流 文件输入输出流 FileInputStream 和 FileOutputStream 负责完成对本地磁盘文件的顺序输入输出操作. [例 10-5]通过程序创建一个文件,从键盘输入字符,当遇到字符“#”时结束,在屏幕上显示该文件的所有内容(查看源代码). 运行后在程序目录建立一个名称为 ep10_5 的文件,运行结果如图 10-8 所示: 图 10-8  例 10_5 运行结果 FileDescriptor 是 java.io 中的一个类,该类不能实例化,其中包含三个静态成员:in…
输入输出(I/O)是指程序与外部设备或其他计算机进行交互的操作.几乎所有的程序都具有输入与输出操作,如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据等.通过输入和输出操作可以从外界接收信息,或者是把信息传递给外界.Java把这些输入与输出操作用流来实现,通过统一的接口来表示,从而使程序设计更为简单. Java流的概念 流(Stream)是指在计算机的输入输出操作中各部件之间的数据流动.按照数据的传输方向,流可分为输入流与输出流.Java语言里的流序列中的数据既可以是未经加工的原始二进制…
Java.io 包提供了 RandomAccessFile 类用于随机文件的创建和访问.使用这个类,可以跳转到文件的任意位置读写数据.程序可以在随机文件中插入数据,而不会破坏该文件的其他数据.此外,程序也可以更新或删除先前存储的数据,而不用重写整个文件. RandomAccessFile类是Object类的直接子类,包含两个主要的构造方法用来创 建RandomAccessFile 的对象,如表 10-11 所示. 表 10-11 RandomAccessFile 类的构造方法 构造方法 功能描述…
目录是管理文件的特殊机制,同类文件保存在同一个目录下不仅可以简化文件管理,而且还可以提高工作效率.Java 语言在 java.io 包中定义了一个 File 类专门用来管理磁盘文件和目录. 每个 File 类对象表示一个磁盘文件或目录,其对象属性中包含了文件或目录的相关信息.通过调用 File 类提供的各种方法,能够创建.删除.重名名文件.判断文件的读写权限以及是否存在,设置和查询文件的最近修改时间等.不同操作系统具有不同的文件系统组织方式,通过使用 File 类对象,Java 程序可以用与平台…
Java.util.zip 包中提供了可对文件的压缩和解压缩进行处理的类,它们继承自字节流类OutputSteam 和 InputStream.其中 GZIPOutputStream 和 ZipOutputStream 可分别把数据压缩成 GZIP 和 Zip 格式,GZIPInpputStream 和 ZipInputStream 又可将压缩的数据进行还原. 将文件写入压缩文件的一般步骤如下: 生成和所要生成的压缩文件相关联的压缩类对象. 压缩文件通常不只包含一个文件,将每个要加入的文件称为一…
解析:Java的IO操作中有面向字节(Byte)和面向字符(Character)两种方式.面向字节的操作为以8位为单位对二进制的数据进行操作,对数据不进行转换,这些类都是InputStream和OutputStream的子类.面向字符的操作为以字符为单位对数据进行操作,在读的时候将二进制数据转为字符,在写的时候将字符转为二进制数据,这些类都是Reader和Writer的子类. 总结:以InputStream(输入)/OutputStream(输出)为后缀的是字节流: 以Reader(输入)/Wr…
Java中面向字符的输入流 2016-12-04 Java程序员联盟 Java程序员联盟 Java程序员联盟 微信号 javalm 功能介绍 莫道君行早,更有早行人 全心敲代码,天道自酬勤 字符流是针对字符数据的特点进行过优化的,因而提供一些面向字符的有用特性,字符流的源或目标通常是文本文件. Reader和Writer是java.io包中所有字符流的父类.由于它们都是抽象类,所以应使用它们的子类来创建实体对象,利用对象来处理相关的读写操作.Reader和Writer的子类又可以分为两大类:一类…
字符流是针对字符数据的特点进行过优化的,因而提供一些面向字符的有用特性,字符流的源或目标通常是文本文件. Reader和Writer是java.io包中所有字符流的父类.由于它们都是抽象类,所以应使用它们的子类来创建实体对象,利用对象来处理相关的读写操作.Reader和Writer的子类又可以分为两大类:一类用来从数据源读入数据或往目的地写出数据(称为节点流),另一类对数据执行某种处理(称为处理流). 面向字符的输入流类都是Reader的子类,其类层次结构如图10-2所示. 图10-2 Read…
流的概念 程序中的输入输出都是以流形式,流中保存的实际上都是字节文件. 字节流与字符流 字节流的操作: 1)输入:inputStream, 2)输出:outPutStream; 字符流的操作: 1)输入主要使用:write类. 2)输出主要使用:reader类. 内容操作就四个类. 操作流程: 使用File类操作一定有路径问题,注意分隔符: 实际上四个操作类都是抽象类(区别接口,抽象类的成员都是抽象,并且只能单继承,接口可以有全局变量,但是接口可以多继承) IO操作属于资源操作,对于资源操作,操…
协程 协程,又称微线程,纤程.英文名Coroutine. 协程的概念很早就提出来了,但直到最近几年才在某些语言(如Lua)中得到广泛应用. 子程序,或者称为函数,在所有语言中都是层级调用,比如A调用B,B在执行过程中又调用了C,C执行完毕返回,B执行完毕返回,最后是A执行完毕. 所以子程序调用是通过栈实现的,一个线程就是执行一个子程序. 子程序调用总是一个入口,一次返回,调用顺序是明确的.而协程的调用和子程序不同. 协程看上去也是子程序,但执行过程中,在子程序内部可中断,然后转而执行别的子程序,…
JAVA之旅(三十)--打印流PrintWriter,合并流,切割文件并且合并,对象的序列化Serializable,管道流,RandomAccessFile,IO其他类,字符编码 三十篇了,又是一个阳光明媚的周末,一个又一个的周末,周而复始,不断学习,前方的路你可曾看见?随我一起走进技术的世界,流连忘返吧! 一.打印流PrintWriter 打印流有PrintWriter和PrintStream,他的特点可以直接操作输入流还有文件 该流提供了打印方法,可以将各种数据类型原样打印 file对象…
输入输出(I/O)是指程序与外部设备或其他计算机进行交互的操作.几乎所有的程序都具有输入与输出操作,如从键盘上读取数据,从本地或网络上的文件读取数据或写入数据等.通过输入和输出操作可以从外界接收信息,或者是把信息传递给外界.Java把这些输入与输出操作用流来实现,通过统一的接口来表示,从而使程序设计更为简单. Java流的概念 流(Stream)是指在计算机的输入输出操作中各部件之间的数据流动.按照数据的传输方向,流可分为输入流与输出流.Java语言里的流序列中的数据既可以是未经加工的原始二进制…
一.其他 1.System.in.System.out(标准输入.输出流) System.in:标准的输入流,默认从键盘输入. System.out:标准的输出流,默认从控制台输出. 改变标准输入输出(System下的静态方法). void setIn(InputStream in):重新分配"标准"输入流 void setOut(PrintStream out):重新分配"标准"输出流 2.PrintStream.PrintWriter(打印流) 代码示例:将内存…
其实输入与输出对于不管什么系统的设计都是异常重要的,比如设计 C 接口函数,首先要设计好输入参数.输出参数和返回值,接下来才能开始设计具体的实现过程.C 语言标准库提供的接口功能很有限,不像 Python 库.不过想把它用好也不容易,本文总结 C 标准库基础 IO 的常见操作和一些特别需要注意的问题,如果你觉着自己还不是大神,那么请相信我,读完全文后你肯定会有不少收获. 一.操作句柄 打开文件其实就是在操作系统中分配一些资源用于保存该文件的状态信息及文件的标识,以后用户程序可以用这个标识做各种读…
第一章 一. 重叠模型的优点 1. 可以运行在支持Winsock2的所有Windows平台 ,而不像完成端口只是支持NT系统. 2. 比起阻塞.select.WSAAsyncSelect以及WSAEventSelect等模型,重叠I/O(Overlapped I/O)模型使应用程序能达到更佳的系统性能. 因为它和这4种模型不同的是,使用重叠模型的应用程序通知缓冲区收发系统直接使用数据,也就是说,如果应用程序投递了一个10KB大小的缓冲区来接收数据,且数据已经到达套接字,则该数据将直接被拷贝到投递…
1.linux基本I/O接口介绍 ssize_t read(int fd, void *buf, size_t count); ssize_t write(int fd, void *buf, size_t count); 以上两个是linux下的两个系统调用.用于对文件行主要的I/O操作. fd是非负文件描写叙述符,事实上相当于标识一个文件的唯一编号. 默认标号0是标准输入(终端输入).1是标准输出(终端输出),2是标准错误. 所以用户通过 open 能够打开的文件得到的文件描写叙述符的最小编…
掌握OutputStreamWriter和InputStreamReader类的作用 一般操作输入输出内容的时候,就需要使用字节或字符流,但是,有些时候,需要将字符流变成字节流形式,或者字节流变成字符流形式. 所以,就需要另一种转换流的操作类. OutputStreamWriter:是Writer的子类.将输出的字符流变成字节流:即将字符流的输入对象变成字节流输入对象. InputStreamReader:是Reader的子类.将输入的字节流变成字符流,即将一个字节流的输入对象变成字符流输入对象…
首先需要明确的一点是输入流输出流的输入输出是站在内存的角度看的,读取文件,把文件内容写到内存中,是输入流:写文件,把内存中的数据写到文件中,是输出流. IO操作主要有4个抽象类: 字节输入输出流:InputStream.OutputStream,操作的是字节byte. 字符输入输出流:Reader.Writer,操作的是字符char. 最常用的子类有FileInputStream .FileOutputStream.InputStreamReader.OutputStreamWriter.Fil…
1.知识点 1.1.课程回顾 1.2.本章重点 1.2.1  io操作 1.2.2  对象的序列化与反序列化 2.具体内容 2.1.Java IO 2.1.1.什么是IO IO其实就是输入.输出 I InputStream 输入流 O OutputStream 输出流 Java IO即Java输入输出系统.不管我们编写何种应用,都难免和各种输入输出相关的媒介打交道,其实和媒介进行IO的过程是十分复杂的,这要考虑的因素特别多,比如我们要考虑和哪种媒介进行IO(文件.控制台.网络),我们还要考虑具体…
本文重点说明下面内容: 什么是标准IO,什么是文件IO? 什么是Direct IO? O_SYNC标识有什么意义? 各个层面的缓存如何同步? 还在page cache中的脏页可以读写吗? IO路径上的各层buff Application buff | clib buff | page cache | disk cache 标准IO 标准IO操作的是流(File对象) 标准IO可以设置缓存,这个缓存是用户态buffer,一般称为clib buff api #include <stdio.h> /…
一.概述 IO流用来处理设备之间的数据传输,上传文件和下载文件,Java对数据的操作是通过流的方式,Java用于操作流的对象都在IO包中. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. 注:java把所有的传统的流类型都放到在java.io包下,用于实现输入和输出功能. 1.1.IO流分类 按照流的不同方向分为:输入流和输出流, 凡是含有in的,都可理解为输入流,…
文本数据IO操作 Reader和Writer 字符流原理  Reader是字符输入流的父类  Writer是字符输出流的父类. 字符流是以字符(char)为单位读写数据的.一次处理一个unicode. 字符流的底层仍然是基本的字节流. 常用方法  Reader的常用方法:   int read():读取一个字符,返回的int值"低16"位有效.  int read(char[] chs):从该流中读取一个字符数组的length个字符并存入该数组,返回值为实际读取到的字符量. 常用方法(…
IO流(Input/Output) 简介: 流是一种抽象概念,它代表了数据的无结构化传递.按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列.从流中取得数据的操作称为提取操作,而向流中添加数据的操作称为插入操作.用来进行输入输出操作的流就称为IO流.换句话说,IO流就是以流的方式进行输入输出. IO技术实际上就是让数据在电脑内存或程序系统和硬件(硬盘,内存卡)之间转换的技术. 分类: 1.按流向 输入流:读取数据,把持久设备的数据读取到内存中. 输出流:写出数据,把内存的数据写出到持久…
Unit08: 文本数据IO操作 . 异常处理 * java.io.ObjectOutputStream * 对象输出流,作用是进行对象序列化 package day08; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; /** * java.io.Ob…
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一个水桶上. 字节:字符:字:管道对01010的封装. java.io.*包中的类.类的分类.Java提供的流的这些类,可以帮你把原始的数据010101转换成字符串.为数据的读取提供了更强大的功能. 程序从文件中读010101的数据. inputStream和outputStream 一个字节是8位.…
一.InputStream重用技巧(利用ByteArrayOutputStream) 对同一个InputStream对象进行使用多次. 比如,客户端从服务器获取数据 ,利用HttpURLConnection的getInputStream()方法获得Stream对象,这时既要把数据显示到前台(第一次读取),又想把数据写进文件缓存到本地(第二次读取). 但第一次读取InputStream对象后,第二次再读取时可能已经到Stream的结尾了(EOFException)或者Stream已经close掉了…
所谓IO,也就是Input与Output的缩写.在java中,IO涉及的范围比较大,这里主要讨论针对文件内容的读写 其他知识点将放置后续章节 对于文件内容的操作主要分为两大类 分别是: 字符流 字节流 其中,字符流有两个抽象类:Writer Reader 其对应子类FileWriter和FileReader可实现文件的读写操作 BufferedWriter和BufferedReader能够提供缓冲区功能,用以提高效率 同样,字节流也有两个抽象类:InputStream OutputStream…