io流(对象流总结)】的更多相关文章

处理流:对象流 ObjectInputStream和OjbectOutputSteam用于存储和读取基本数据类型数据或对象的处理流.可以把Java中的对象写入到数据源中,也能把对象从数据源中还原回来. 序列化:用ObjectOutputStream类保存基本类型数据或对象的机制. 反序列化:用ObjectInputStream类读取基本类型数据或对象的机制 对象序列化机制 序列化:将内存中的Java对象转换成二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点(ObjectO…
/** * !!:以后写流的时候一定要加入缓冲!! * 对文件或其它目标频繁的读写操作,效率低,性能差. * 缓冲流:好处是能更高效地读写信息,原理是将数据先缓冲起来,然后一起写入或读取出来. * * BufferedInputStream:字节缓冲流(有一个内部缓冲区数组,用于缓冲数据) */ public class Main { public static void main(String[] args) { input(); output(); } /** * 使用字节缓冲流进行读取操作…
对象流 对象流就是对引用数据类型进行操作 序列化:将对象的状态信息转换为可以存储或传输的形式的过程,因此类需要序列化后才可以存储到文件中 对象输出流: 很简单,就三句话,将把一个对象导入指定文件中,要注意:被导入的对象必须要实现一个借口(Serializable,可序列化接口),而这个接口就是一个标志,在没有作用,标志你可以被导入到硬盘中 我们写进文件中的信息我们看不懂,但是计算机可以看懂 package com.bjsxt.test08; import java.io.*; public cl…
对象流,可以将java中的对象转为字节进行输出.将对象写入文件时.文件输出流是将字节写入到文件中. 对象流是将给定的对象转化为一组字节.writeObject()方法就是将对象转为字节. 对象流,读的文件肯定是对象进行转换以后的字节.只有实现了Serializable可序列号接口,我们才可以把一个对象进行序列化. 对象流的作用就是:将对象进行序列化和反序列化.将对象转化为字节,然后将字节转化为对象. 将对象转化为字节的时候,会记录变量的属性.转化后文件的大小比对象成员变量大小相加更大. Seri…
对象流 java.io.ObjectOutputStream和ObjectInputSteam 对象流是一对高级流,在流连接中的作用是进行对象的序列化与反序列化. 对象序列化:将一个java对象按照其结构转换为一组字节的过程 对象反序列化:将一组字节还原为java对象(前提是这组字节是一个对象序列化得到的字节) 对象序列化的流连接操作原理图: package io; import java.io.FileNotFoundException; import java.io.FileOutputSt…
一.字节数组流: 类 ByteArrayInputStream:在构造函数的时候,需要接受数据源,而且数据源是一个字节数组. 包含一个内部缓冲区,该缓冲区包含从流中读取的字节.内部计数器跟踪 read 方法要提供的下一个字节 关闭ByteArrayInputStream流无效.此类中的方法在关闭此流后仍可被调用,而不会产生任何 IOException   类 ByteArrayOutputStream:在构造函数的时候,不用定义数据目的,因为该对象中内部已经封装了可变长度的字节数组,这就是数据的…
输入流和输出流是相对于内存设备而言 即将外设中的数据读取到内存中就是输入    将内存中的数据写入到外设中就是输出   字符流的由来:     其实就是:字节流读取文字字节数据后,不直接操作而是先查指定的编码表,获取对应的文字. 再对这个文字进行操作,其实就是字节流+编码表     字节流的两个顶层父类: 1,InputStream  2,OutputStream   字符流的两个顶层父类: 1,Reader   2,Writer   这些体系的子类都以父类名作为后缀. 而子类名的前缀就是该对象…
对象流 1.1对象流简介 1.2对象流分类 输入流字节流处理流:ObjectInputStream,将序列化以后的字节存储到本地文件 输出流字节流处理流:ObjectOutputStream 1.3序列化与反序列化 序列化: [将对象--> 字节的过程] 用ObjectOutputStream类保存基本数据类型或对象的机制叫序列化 反序列化 [将字节--> 对象的过程] 用ObjectInputStream类读取基本数据类型或对象的机制叫反序列化 注意: 能被序列化的对象所对应的类必须实现ja…
序列流 也称为合并流. SequenceInputStream 序列流,对多个流进行合并. SequenceInputStream 表示其他输入流的逻辑串联.它从输入流的有序集合开始,并从 第一个输入流开始读取,直到到达文件末尾,接着从第二个输入流读取,依次类推,直到到达 包含的最后一个输入流的文件末尾为止. 注意: 构造函数 SequenceInputStream(InputStream s1, InputStream s2) SequenceInputStream(InputStream s…
Java IO(Properties/对象序列化/打印流/commons-io) Properties Properties 类表示了一个持久的属性集.Properties 可保存在流中或从流中加载.属性列表中每个键及其对应值都是一个字符串 主要方法 setProperty等同与Map接口中的put , setProperty(String key, String value) 通过键获取值, getProperty(String key) load() 加载配置文件, 加载完毕以后可以通过 g…
Input(读) Output(写)操作 File类 import java.io.File; 将操作系统中的文件.目录(文件夹).路径.封装成File对象 提供方法,操作系统中的内容.File与系统无关的类. String pathSeparator = File.pathSeparator; System.out.println(pathSeparator); // windows';' Linux ':' 路径分割符 String separator = File.separator; S…
Java中的IO流,即为输入输出流.所谓输入输出流,都是相对于程序而言,程序就是这个参照物.一张图看懂输入输出流: 输入流抽象基类:InputStream,Reader 输出流抽象基类:OutputStream,Writer 输入输出流子类众多,详情见下图: 1.内存流 用来操作内存 ByteArrayInputStream     内存到程序 不需要关闭 不使用内存资源,内存不够建议不用 ByteArrayOutputStream 程序到内存 不需要关闭 不使用内存资源,内存不够建议不用 内存…
Java基础-IO流对象之压缩流(ZipOutputStream)与解压缩流(ZipInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 之前我已经分享过很多的Java的IO流了,和其他的IO流用法类似,我们要介绍的是压缩流,使用方法很简单.话不多说,一切尽在注释中. 一.压缩文件 /* @author :yinzhengjie Blog:http://www.cnblogs.com/yinzhengjie/tag/Java%E5%9F%BA%E7%A1%8…
Java基础-IO流对象之随机访问文件(RandomAccessFile) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.RandomAccessFile简介 此类的实例支持对随机访问文件的读取和写入.随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组.存在指向该隐含数组的光标或索引,称为文件指针:输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针. 二.RandomAccessFile用法展示 /* @author :yinzhengjie…
Java基础-IO流对象之内存操作流(ByteArrayOutputStream与ByteArrayInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存操作流特点 内存操作流是为了临时处理数据而设置的.内存操作流分为“ByteArrayOutputStream”和“ByteArrayInputStream”. “ByteArrayOutputStream”类实现了一个输出流,其中的数据被写入一个 byte 数组.缓冲区会随着数据的不断写入而自动增长…
Java基础-IO流对象之数据流(DataOutputStream与DataInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.数据流特点 操作基本数据类型的数据类型,若不使用数据流,写出之后会有什么结果?当然是截断啦.那有什么很好的解决方案吗?当然有啦,就是我们要说的数据流. 二.写数据(DataOutputStream) /* @author :yinzhengjie Blog:http://www.cnblogs.com/yinzhengjie/…
Java基础-IO流对象之打印流(PrintStream与PrintWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.打印流的特性 打印对象有两个,即字节打印流(PrintStream)和字符打印例会(PrintWriter).两个打印流的方法完全一致,在构造方法中指定打印流的输出目的端,打印流有以下特点: 1>.此流不负责数据源,只负责数据目的: 2>.为其它输出流添加功能: 3>.永远不会抛出IOException,可能会抛出其它异常: 二.打印流…
Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.对象的序列化与反序列化 ObjectOutputStream流用于将对象保存在磁盘中,或者通过网络传输到另一台主机上.保存在文件中的对象的二进制流可以用ObjectInputStream流在以后被还原成原来的对象. 对象输出流的对象可以永久的保存在磁盘上,使对象可以脱离程序而存在,此过程也称为“序列化”过程…
java基础-IO流对象之Properties集合 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Properties集合的特点 Properties类表示了一个持久的属性集.Properties可保存在流中或从流中加载,属性列表中每个键即及其对应值都是一个字符串.总结其显而易见的特点如下: 1>.Hashtable的子类,map集合中的方法都有可以用: 2>.该集合没有泛型,键值都是字符串: 3>.它是一个可以持久化的属性集,键值可以存储到集合中,也可以存储到持…
Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符缓冲流 字符缓冲流根据流的方向,共有2个: 1>. 写入数据到流中,字节缓冲输出流 BufferedReader 2>.读取流中的数据,字节缓冲输入流 BufferedWriter 完成文本数据的高效的写入与读取操作. 二.字符输出缓冲流(BufferedWriter) BufferedWriter有一个特有的方法就是ne…
Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我们学习字节流与字符流的时候,大家都进行过读取文件中数据的操作,读取数据量大的文件时,读取的速度会很慢,很影响我们程序的效率,那么,我想提高速度,怎么办?Java中提高了一套缓冲流,它的存在,可提高IO流的读写速度 缓冲流,根据流的分类分为字节缓冲流与字符缓冲流.本篇博客主要介绍的是字节缓冲流. 一.字节缓冲…
Java基础-IO流对象之转换流(InputStreamReader与OutoutStreamWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.转换流概述 我们之前介绍过FileWrite和FileReader两个字符类,FileReader是用来读取字符文件的便捷类.此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的.要自己指定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader. FileWriter是…
Java基础-IO流对象之字符类(FileWrite与FileReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常见编码简介 1>ASCII 我们知道计算机是由外国人发明的,他们当时也没有考虑到全球都用到计算机,因此在设计编码的时候压根就没有考虑中文,日文,泰文等等,而是仅仅将英文大小写和标点符号等一些特殊字符考虑进去了,这种编码格式被称为ASCII编码,每个字母或特殊字符都会用8个“0”和“1”的二进制组合进行标识,聪明的小伙伴估计口算都能算出来2的八次方是…
Java基础-IO流对象之字节流(Stream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在前面我分享的笔记中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现在我们就要开始给文件中写数据,或者读取文件中的数据.什么是输入呢?我们这里的输入指的是将文件的内容加载到程序中的过程叫做输入,那上面叫做输出呢?就是将程序的内容持久化到硬盘上叫做输出. 一.字节输出流(outputStream) java.io.OutputStream此抽象类是表示输出字节流的所有…
Java基础-IO流对象之File类 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.IO技术概述 回想之前写过的程序,数据都是在内存中,一旦程序运行结束,这些数据都没有了,等下次再想使用这些数据,可是已经没有了.那怎么办呢?能不能把运算完的数据都保存下来,下次程序启动的时候,再把这些数据读出来继续使用呢?其实要把数据持久化存储,就需要把内存中的数据存储到内存以外的其他持久化设备(硬盘.光盘.U盘等)上. 当需要把内存中的数据存储到持久化设备上这个动作称为输出(写)Outp…
1.描述:流是字节数据或字符数据序列.Java采用输入流对象和输出流对象来支持程序对数据的输入和输出.输入流对象提供了数据从源点流向程序的管道,程序可以从输入流对象读取数据:输出流对象提供了数据从程序流向终点的管道,程序通过该管道把数据写到终点.所有的关于输入/输出的类都包含在java.io的包中. 2.File类:它主要关心的是文件的具体属性,而非内容,定义了许多方法,实现对文件的创建.删除等操作.code: import java.io.*; public class Test { publ…
打印流的主要功能是用于输出,在整个IO包中打印流分为两种类型: 字节打印流:PrintStream 字符打印流:PrintWriter 打印流可以很方便的进行输出 public class PrintStreamDemo { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub byteStreamOut(); charStreamOut(); } //Pr…
对象流的两个类: ObjectOutputStream:将Java对象的基本数据类型和图形写入OutputStream ObjectInputStream:对以前使用ObjectOutputStream写入的基本数据和对象进行反序列化 序列化一组对象: 在系列化操作中,同时序列化多个对象时,反序列化也必须按顺序操作,如果想要序列化一组对象该如何操作呢? 序列化一组对象可采用,对象数组的形式,因为对象数组可以向Object进行转型操作. 把对象序列化到文件当中,然而文件中存的是字节.我们对象里面相…
package seday06; import java.io.Serializable;import java.util.Arrays; /** * @author xingsir * 使用当前类来测试对象流的对象读写操作 * 当前类实例若想被对象流进行读写,那么必须实现接口:java.io.Serializable */public class Person implements Serializable { private static final long serialVersionUI…
概述 io流分为字符流和字节流,具体分类相见下图 字符流:char 一些基本文本的数据传输 字节流:byte 图片.视频等用文本查看器查看不了的文件都是二进制文件,只能用字节流传输,使用字符流cp的看不了. 转换流: 字节流转换未字符流的桥梁 对象流: 可以用于读写任意类型的对象…