IO体系总结】的更多相关文章

Java IO体系 个人觉得可以用"字节流操作类和字符流操作类组成了Java IO体系"来高度概括Java IO体系. 借用几张网络图片来说明(图片来自 http://blog.csdn.net/zhangerqing/article/details/8466532 )  基于字节的IO操作 基于字符的IO操作   从上图可以看到,整个Java IO体系都是基于字符流(InputStream/OutputStream) 和 字节流(Reader/Writer)作为基类,根据不同的数据载…
io 体系回顾: 流的概念: java 程序 通过流来进行完成输入与输出的.流是生产或者消费信息的抽象,流通过java 的 输入/输出系统与物理设备相连,尽管与他们链接的物理设备不尽相同,所有流的行为具有相同的方式.这样,相同的输入输出类和方法适用于所有类型的外部设备,这意味着一个输入流能够抽象多种不同类型的输入:磁盘文件,键盘或者网络套接字, 同样一个输出流可以输出到控制台,磁盘文件,或者相连的网络,流是处理输入与输出的一个洁净地方,例如他不需要代码理解键盘与网络的不同,java中的流的实现在…
Java IO体系之RandomAccessFile浅析 一.RandomAccessFile综述: 1.1RandomAccessFile简介 RandomAccessFile是java Io体系中功能最丰富的文件内容访问类.即可以读取文件内容,也可以向文件中写入内容. RandomAccessFile的唯一父类是Object,与其他流父类不同.是用来访问那些保存数据记录的文件的,这样你就可以用seek( )方法来访问记录,并进行读写了.这些记录的大小不必相同:但是其大小和位置必须是可知的.…
Java IO体系之File类浅析 一.File类介绍 位于java.io下的Java File类以抽象的方式代表文件名和目录路径名.该类主要用于文件和目录的创建.文件的查找和文件的删除等.File对象代表磁盘中实际存在的文件和目录,该类实现了Serializable和Comparable<File>接口,意味着该类支持序列化,并且实例对象可进行比较.博主把它归于java io体系中 File(文件)类这个名字有一定的误导性,我们可能会认为它指代的是文件,实际上却并非如此.它既能代表一个特定文…
Java IO体系综述 一.流的概念 在Java API中,可以从其中读入一个字节序列的对象称作输入流,而可以向其中写入一个字节序列的对象称作输出流.这些字节序列的来源地和目的地可以是文件,而且通常都是文件,但是也可以是网络连接,甚至是内存块.编程语言的I/O类库中使用流这个抽象概念,它代表任何有能力产出数据的数据源对象或者是有能力接收数据的接收端对象. Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节…
Netty学习-IO体系架构系统回顾 IO和NIO的学习 NIO - 1.4 开始出的 在网络应用框架中,NIO得到了大量的使用,特别是netty里面 前提:对IO及其了解 对IO的总结和回顾 理解Java I/O系统 熟悉使用Java.io包中的相关类和接口进行I/O编程 掌握Java IO的设计原则与使用的设计模式 Thinking in java - Java编程思想 对程序语言设计者来说,设计一个令人满意的IO系统是件及其艰巨的任务 几个基础概念 流的概念 输入/输出流概念 输入/输出类…
更多Android高级架构进阶视频学习请点击:https://space.bilibili.com/474380680 个人觉得可以用“字节流操作类和字符流操作类组成了Java IO体系”来高度概括Java IO体系. 借用几张网络图片来说明(图片来自 http://blog.csdn.net/zhangerqing/article/details/8466532 ) ** 基于字节的IO操作** |   ​ |   ​   |基于字符的IO操作 |   ​ |   ​ | 从上图可以看到,整个…
从本文开始,将正式进入JavaIO的简介 在继续javaIO系列的文章之前 可以过去看一下 本人博客上的设计模式中的 适配器模式和装饰器模式 这会对接下来的阅读大有帮助   本文是从逻辑上介绍整个的Java IO类家谱画像.   1.流   计算机以及互联网的世界发展不过短短几十年,但是这几十年却是日新月异 系统的复杂度也越来越高,程序设计语言的抽象程度也越来越高 但是无论如何都绕不开一个话题,那就是IO 之前已经介绍过,IO 就是输入 和 输出, 入和出是相对于应用程序来说的 而且,经常一个程…
一.体系结构…
字节输入流: 字节输出流: 字符输入流: 字符输出流:…
一.概述 在整个 Java.io 中最重要的就是5个类和一个接口.5个类指的是 File.InputStream.OutputStream.Reader.Writer,一个接口指的是Serializable.掌握了这些IO的核心操作那么对于Java中的IO体系也就有了一个初步的认识了. File(文件类):主要用来描述文件或目录的属性,例如:文件大小,修改文件名,删除文件,判断文件所在路径等. InputStream(字节输入流):抽象类,基于字节的输入操作,是所有输入流的父类.定义了所有输入流…
在上面两篇文章中介绍了IO体系并详细介绍了字节流以及字符流,本文主要是讲述操作文件的File.转化流.标准输入与输出.Properties.打印流以及序列流. File File英文为"文件"的意识,正如其意识所表达的一样,File代表的是对磁盘文件对象,File中封装了对文件操作的一些方法,例如创建.删除.重命名文件等操作.File类是对象主要用来获取未文件本身的一些信息,如文件所在的目录.文件的长度.文件的读写权限等.File对象可以作为参数传递给流的构造函数. 构造方法: |--…
IO流是用来处理设备之间的数据传输,Java对数据的操作是通过流的方式进行,而操作流的对象都封装到java.io包中.根据操作数据的种类可以把IO流分为字节流(InputStream,OutputStream)和字符流(Reader,Writer)或者根据流的流向分为输入流(InputStream,Reader)输出流(OutputStream,Writer) 字符流中继承体系结构: 字节流中的继承体系结构: FileWriter:字符输出流专门写入文本数据,使用后需要调用flush()方法,在…
------- android培训.java培训.期待与您交流! ---------- IO流在是java中非常重要,也是应用非常频繁的一种技术.初学者要是能把IO技术的学透,java基础也就能更加牢靠.本文是根据以前学习IO的过程中的一些总结,再通过查找资料完善出来的,应该算是比较适合初学者解读的. 一.概念 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输.所以,为了方便更直观的进行数据操作,就根据数据传输特性将流抽象为各种…
一.    填空题 Java IO流可以分为   节点流   和处理流两大类,其中前者处于IO操作的第一线,所有操作必须通过他们进行. 输入流的唯一目的是提供通往数据的通道,程序可以通过这个通道读取数据, read 方法给程序提供了一个从输入流中读取数据的基本方法. read方法从输入流中顺序读取源中的单个字节数据,该方法返回字节值(0-255之间的一个整数),如果到达源的末尾,该方法返回  -1   . Java系统的标准输入对象是System.in,标准输出对象有两个,分别是标准输出Syst…
在上一篇文章中介绍了IO体系以及一些基本概念和字符流的相关应用,本文着重介绍字节流的相关操作. 字节流 它的操作与字符流类似,可以参与字符流的定义.读取.写入.处理异常的格式,只不过是处理的数据不同,因为对于非字符的数据,比如图片.视频.音频文件(例如mp3)等,这些文件只能用字节流对之进行操作. 字节流的抽象基类: |--InputStream:字节输入流 |--OutputStream:字节输出流 FileInputStream FileInputStream是InputStream的一个子…
---------- android培训.java培训.期待与您交流! ---------- 一.File类 (一)概述 1.File类:文件和目录路径名的抽象表现形式 2.作用: (1)用来将文件或文件夹封装成对象 (2)方便于对“文件”与“文件夹属性信息”进行操作 (3)File对象,可以作为参数传递给流的构造函数 (二)构造方法 * 通过File的构造函数创建File对象 方式1:File f = new File("c:\\a.txt"); 方式2:File f2 = newF…
Java IO 流 Java将不同的设备或载体(键盘.文件.网络.管道等)的输入输出数据统称为"流"(Stream),即JAVA的IO都是基于流的. JAVA传统的所有流类型类都包含在java.io包中. 流的分类方法有很多,例如根据流向分为输入流/输出流,根据角色分为节点流/处理流, 根据数据不同的操作单元,JAVA分为两种基本的流类型,即 字节流--以8位(即1byte, 8bit)作为一个数据单元: 字符流--以16位(即1char, 2byte, 16bit)作为一个数据单元.…
文件IO续 File类    用来将文件和文件夹封装成对象 方便对文件和文件夹的属性信息进行操作    File对象可以作为参数传递给流的构造函数 Demo1 File的构造方法 public class FileDemo { public static void main(String[] args) { constructorDemo(); } public static void constructorDemo() { // 可以将一个已存在的,或者不存在的文件或者目录封装成file对象.…
编码:字符串变成字节数组. 解码:字节数组变成字符串 String --> byte[]; str.getBytes(); byte  --> String: new String(bytep[]); 如果编码的时候产生错误,就放弃 如果解码的时候产生错误,就编一次,解一次(通用方法)[对编码的时候用gbk,解码的 时候用utf-8,这种方法不行,因为utf-8会去找相似的字,结果源码就会变掉] 在记事本里输入联通两个字,就会变成乱码,因为这两个字符合联通的编码形式 符合UTF-8的编码规则…
对象序列化 对象序列化又叫对象的持久化,对象的串行化(或反串行化) 当使用Serializable接口实现序列化操作时,如果一个对象中的某个属性不希望被序列化,则可以使用transient关键字进行声明. static修饰的静态属性也不能被序列化,序列化的只是堆内存中对象的属性. ANY-ACCESS-MODIFIER(任意的访问修饰符) static final long serialVersionUID = 42L; 语句的作用:给类定义一个固定标识,为了序列化方便,新的类还能操作曾经被序列…
一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read 方法要提供的下一个字节 关闭ByteArrayInputStream流无效.此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException   类 ByteArrayOutputStream:在构造函数的时候,不用定义数据目的,因为该对象中内部已经封装了可变长度的字节数组,这就是数据的…
    近期要在公司内部做个Linux IO方面的培训, 整理下手头的资料给大家分享下 各种IO监视工具在Linux IO 体系结构中的位置 源自 Linux Performance and Tuning Guidelines.pdf 1 系统级IO监控 iostat iostat -xdm 1    # 个人习惯 %util         代表磁盘繁忙程度.100% 表示磁盘繁忙, 0%表示磁盘空闲.但是注意,磁盘繁忙不代表磁盘(带宽)利用率高 argrq-sz    提交给驱动层的IO请求…
Linux的IO调度 IO调度发生在Linux内核的IO调度层.这个层次是针对Linux的整体IO层次体系来说的.从read()或者write()系统调用的角度来说,Linux整体IO体系可以分为七层,它们分别是: VFS层:虚拟文件系统层.由于内核要跟多种文件系统打交道,而每一种文件系统所实现的数据结构和相关方法都可能不尽相同,所以,内核抽象了这一层,专门用来适配各种文件系统,并对外提供统一操作接口. 文件系统层:不同的文件系统实现自己的操作过程,提供自己特有的特征,具体不多说了,大家愿意的话…
IO体系概览 先看看本文主题IO调度和IO队列处于整个IO体系的哪个位置,这个IO体系是非常重要的,了解IO体系我们可以对整个IO过程有个全面的认识.虽然一下两下并不清楚IO体系各个部分的细节,但是我们总是能从这儿找到脉络.知道什么问题在什么位置,这个是解决问题的时候最关键的.任何所谓的专家都不太可能100%的了解全部细节,但是知道脉络,可以针对问题有的放矢. 实际上也不用完全明白,没有必要:):) 接下来咱们还是继续主题,请看下图 (注意:本图不涉及direct I/O) 图中数据流箭头1,2…
IO 有具体的分类: 有具体的分类:1:根据处理的数类型不同:字节流和字符流.2:根据流向不同:输入流和输出流. =============(补充字节跟字符概念区分)============================== 字符:可使用多种不同字符方案或代码页来表示的抽象实体.例如,Unicode UTF-16 编码将字符表示为 16 位整数序列,而Unicode UTF-8 编码则将相同的字符表示为 8 位字节序列.公共语言运行库使用 Unicode UTF-16(Unicode 转换格式…
现有如下的一个需求,向已存在1G数据的txt文本里末尾追加一行文字,内容如下“Lucene是一款非常优秀的全文检索库”.可能大多数朋友会觉得这个需求很easy,说实话,确实easy,然后XXX君开始实现了,直接使用Java中的流读取了txt文本里原来所有的数据转成字符串后,然后拼接了“Lucene是一款非常优秀的全文检索库”,又写回文本里了,至此,大功告成.后来需求改了,向5G数据的txt文本里追加了,结果XXX君傻了,他内存只有4G,如果强制读取所有的数据并追加,会报内存溢出的异常. 其实上面…
Linux下的IO监控与分析 近期要在公司内部做个Linux IO方面的培训, 整理下手头的资料给大家分享下 各种IO监视工具在Linux IO 体系结构中的位置 源自 Linux Performance and Tuning Guidelines.pdf 1 系统级IO监控 iostat iostat -xdm 1    # 个人习惯 %util         代表磁盘繁忙程度.100% 表示磁盘繁忙, 0%表示磁盘空闲.但是注意,磁盘繁忙不代表磁盘(带宽)利用率高 argrq-sz   …
查看各对象API文档 打印流 PrintWriter PrintStream 序列流:对多个流进行排列合并 SequenceInputStream public static void main(String[] args) throws IOException { /* * 需求:将1.txt 2.txt 3.txt文件中的数据合并到一个文件中. */ // Vector<FileInputStream> v = new Vector<FileInputStream>(); //…
1.基本概念 1.1.InputStream 最基本的字节输入流,抽象类,定义了读取原始字节的所有基本方法1.1.1.public abstract int read() throws IOException 读取一个字节的方法,最基础的方法1.1.2.public int read(byte b[], int off, int len) 读取指定长度的字节到字节数组,基于方法1.1.11.1.3.public int read(byte b[]) throws IOException 读取一个…