021.13 IO流 RandomAccessFile对象】的更多相关文章

对象和方法:RandomAccessFile:文件操作对象,Java提供getFilePointer:获取文件指针 特点:1.只能操作文件2.既能读,又能写3.里面维护了一个数组,内部定义了字符的读和写4.文件不存在则会创建,文件存在不会覆盖,保持原样5.该对象打开文件,指针在开头.6.随机的意思是可以随意在哪更改.......... 打开方式有:"r"—以只读方式打开,"rw"—打开以便读取和写入,文件不存在则会尝试创建 //  "rws"—相…
内容:通过文件存储对象我们遇到的问题,需要保存对象到硬盘中,如何解决这个就是用来解决的 用法:1.创建流对象FileOutputstream2.创建ObjectOutputStream对象与FileOutputStream关联3.使用writeObject方法写入对象,或者通过readObject读取对象对象要求继承Serializable接口,该接口为类提供一个序列号,用于读取的时候相对应,保证不出错,显示该序列号 具体如下代码: //ObjectStreamDemo.java public…
序列化流:把对象按照流一样的方式存入文本文件或者在网络中传输.对象 -- 流数据(ObjectOutputStream) 构造方法:ObjectInputStream(InputStream in)  创建从指定 InputStream 读取的 ObjectInputStream 反序列化流:把文本文件中的流对象数据或者网络中的流对象数据还原成对象.流数据 -- 对象(ObjectInputStream) 构造方法:ObjectInputStream(InputStream in)  创建从指定…
###################################################################################IO流的规律总结:解决的问题,开发中具体使用哪个流对象的问题1,明确数据源,数据目的    就是在明确要使用的IO体系.InputStream   OutputStream     Reader       Writer    需求中做为源:意味着是读    使用:InputStream    Reader        需求中做为…
########################################IO流:    IO:用于处理设备上的数据的技术.设备:内存,硬盘,光盘    流:系统资源,Windows系统本身就可以操作的设备.各种语言只是使用系统平台的这个资源.并对外提供了各种语言自己的操作功能,这些功能最终调用的是系统资源,使用完资源一定要记住:释放. File类直接有了分隔符:File.separator"c:"+File.separator+"a.txt" #######…
一.对象流 1.序列化与反序列化 序列化:将内存中的Java对象保存到磁盘中或通过网络传输出去. 反序列化:将磁盘文件中的对象还原为内存中的一个Java对象. 用途: (1)将对象保存到物理硬盘:比如Web服务器中的Session对象,当有10万用户并发访问时,有可能出现10万个Session对象,内存可能吃不消,从而导致OOM.于是Web容器就会把一些Session序列化到硬盘中,等需要时,再把硬盘中的对象反序列化到内存中. (2)将对象在网络上进行传输:当两个进程进行通信时,数据都会以二进制…
对象流 1.1对象流简介 1.2对象流分类 输入流字节流处理流:ObjectInputStream,将序列化以后的字节存储到本地文件 输出流字节流处理流:ObjectOutputStream 1.3序列化与反序列化 序列化: [将对象--> 字节的过程] 用ObjectOutputStream类保存基本数据类型或对象的机制叫序列化 反序列化 [将字节--> 对象的过程] 用ObjectInputStream类读取基本数据类型或对象的机制叫反序列化 注意: 能被序列化的对象所对应的类必须实现ja…
对象的序列化和反序列化 1)对象序列化,就是将Object对象转换成byte序列,反之叫对象的反序列化. 2)序列化流(ObjectOutputStream),是字节的过滤流—— writeObject()方法 反序列化流(ObjectInputStream)—— readObject()方法 3)序列化接口(Serializable) 对象必须实现序列化接口,才能进行序列化,否则将出现异常. 注:这个接口,没有任何方法,只是一个[标准] 一.最基本的序列化和反序列过程 序列化和反序列都是以Ob…
写入 获取ObjectOutputStream对象,new出来,构造参数:FileOutputStream对象目标文件 调用ObjectOutputStream对象的writeObject()方法,参数:要保存的对象 调用ObjectOutputStream对象的close()方法,关闭流 此时会报异常,NotSerialzeableException,是因为目标类没有实现Serializable接口,这个接口没有方法,称为标记接口,会在改变类之后,生成新的序列号,保存的文件读取时会显示错误信息…
对象流 对象流就是对引用数据类型进行操作 序列化:将对象的状态信息转换为可以存储或传输的形式的过程,因此类需要序列化后才可以存储到文件中 对象输出流: 很简单,就三句话,将把一个对象导入指定文件中,要注意:被导入的对象必须要实现一个借口(Serializable,可序列化接口),而这个接口就是一个标志,在没有作用,标志你可以被导入到硬盘中 我们写进文件中的信息我们看不懂,但是计算机可以看懂 package com.bjsxt.test08; import java.io.*; public cl…
RandomAccessFile的介绍: RandomAccessFile是Java输入输出流体系中功能最丰富的文件内容访问类,它提供了众多的方法来访问文件内容,它既可以读取文件内容,也可以向文件输出数据.与普通的输入/输出流不同的是,RandomAccessFile 支持"随机访问"的方式,程序可以直接跳转到文件的任意地方来读写数据. 这个类有两个构造器: RandomAccessFile​(File file, String mode) 创建随机访问文件流,以便从File参数指定的…
当创建对象时,程序运行时它就会存在,但是程序停止时,对象也就消失了.但是如果希望对象在程序不运行的情况下仍能存在并保存其信息,将会非常有用,对象将被重建并且拥有与程序上次运行时拥有的信息相同.可以使用对象的序列化. 对象的序列化:   将内存中的对象直接写入到文件设备中 对象的反序列化: 将文件设备中持久化的数据转换为内存对象 基本的序列化由两个方法产生:一个方法用于序列化对象并将它们写入一个流,另一个方法用于读取流并反序列化对象. ObjectOutput writeObject(Object…
用的频率不高特点:读取管道和写入管道对接,需要是用多线程技术,单线程容易死锁 使用connect方法连接两个流,实现边读编写,和node.js的管道流差不多 //##主函数位置 public static void main(String[] args) throws IOException { //创建两个管道对象 PipedInputStream pis = new PipedInputStream(); PipedOutputStream pos = new PipedOutputStre…
序列流:SequenceInputStream特点:流对象有序排列解决问题:将多个输入流合并成一个输入流,将多个源合并成一个源,对于多个源的操作会变简单. 构造函数参数就是输入流,一初始化就合并了多个流. public static void main(String[] args) throws IOException { //获取枚举,Vector有,但是效率低,使用ArrayList ArrayList<FileInputStream> al = new ArrayList<File…
#######################################################################################获取指定目录下所有的.java文件(包含子目录中的),并将这些java文件的绝路路径写入到一个文件中.建立一个java文件清单列表./* * 思路: * 1,一看到包含子目录,必须递归. * 2,写数据到文件,输出流. * 3,继续分析,发现只要.java ,需要过滤器. * 4,满足过滤的条件的文件有可能非常多,先进行存储…
内容:文件读取方法,读取方法例子,read(buf)方法中buf的取值,字节流缓冲区对象—提高读取速度/// 文件读取方法:fis.read(),fis.read(buf),具体看例子 例子:文件读取——读取文件,显示出来 public class FileInputStreamDemo { public static void main(String[] args) { //为了确保文件一定在读之前一定存在.将字符串路径封装成File对象 File file = new File("F:&qu…
RandomAccessFile java提供的对文件内容的访问,既可以读文件,也可以写文件. 支持随机访问文件,可以访问文件的任意位置. java文件模型,在硬盘上的文件是byte byte byte存储的,是数据的集合 打开文件,有两种模式,“rw”读写.“r”只读:RandomAccessFile raf = new RandomAccessFile(file, "rw");,文件指针,打开文件时指针在开头 point = 0; 写方法, raf.write()-->只写一…
Buffered字符包装流 与Buffered字节装饰流一样,只不过是对字符流进行包装. 需要注意的地方 Buffered字符流在Reader与Writer上有两个新的方法:String readLine()与 void newLine() 所以Buffered字符流不能够使用多态,也就是:Writer w = new BufferedWriter(); 这样虽然不报错,但使用不了新的这两个方法. 构造方法 需要特别提到的一个构造其:BufferedWriter(Writer w,int sz)…
SequenceInputStream :表示其他输入流的逻辑串联. 构造方法摘要 SequenceInputStream(Enumeration<? extends InputStream> e)           通过记住参数来初始化新创建的 SequenceInputStream,该参数必须是生成运行时类型为 InputStream 对象的 Enumeration 型参数. SequenceInputStream(InputStream s1, InputStream s2)     …
IO包中的其他类操作基本数据类型:DataInputStream与DataOutputStream操作字节数组:ByteArrayInputStream与ByteArrayOutputStream操作字符数组:CharArrayReader与CharArrayWriter操作字符串:StringReader与StringWriter ####DataInputStream与DataOutputStream public static void main(String[] args) throws…
内容:PrintStream:字节流    PrintWriter:字符流 PrintStream public static void main(String[] args) throws IOException { //创建对象 PrintStream ps = new PrintStream("myfile\\print.txt"); //写入整数 ps.write(355); //文件里面是c,只是写入整数的最低字节,也就是最后8位二进制 ps.print(355); //文件…
###############基本功能写 FileWriter fw = new FileWriter("xxx.txt"); fw.write("哈喽"); fw.close(); 读 FileReader fr = new FileReader("xxx.txt"); int ch = 0; while((ch = fr.read()) != -1){ System.out.println((char)ch); } fr.close(); #…
默认使用的就是gbk编码,这里的例子改成了utf8编码 写入—编码 private static void writeText() throws IOException { FileOutputStream fos = new FileOutputStream("utf8.txt"); OutputStreamWriter osw = new OutputStreamWriter(fos,"UTF-8"); osw.write("求"); osw…
内容:流的分类,文件写入(字节输出流),异常处理,获取一个文件夹下的特定文件集合 字节流的抽象基类:InputStream,OutputStream字符流的抽象基类:Reader,Writer由这四个类派生出来的子类名称都是以父类名作为子类名的后缀.如:InputStream的子类FileInputStream,Reader的子类FileReader ###################################################文件写入,字节输出流 private sta…
序列化 @Test public void test14() throws IOException { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object1.dat")); oos.writeObject(new Person("张三", 20)); oos.close(); } 反序列化 @Test public void test15() throws IOEx…
序列化 @Test public void test12() throws IOException { ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("object.dat")); oos.writeObject(new String("白发渔樵江渚上")); oos.close(); } 反序列化 @Test public void test13() throws IOEx…
字节流和字符流 对于文件必然有读和写的操作,读和写就对应了输入和输出流,流又分成字节和字符流. 1.从对文件的操作来讲,有读和写的操作——也就是输入和输出. 2.从流的流向来讲,有输入和输出之分. 3.从流的内容来讲,有字节和字符之分. 这篇文章先后讲解IO流中的字节流和字符流的输入和输出操作. 一.字节流 1)输入和输出流 首先,字节流要进行读和写,也就是输入和输出,所以它有两个抽象的父类InputStream.OutputStream. InputStream抽象了应用程序读取数据的方式,即…
Chapter 13. IO流 13.1 File类 java.io.File类是文件(file)和目录(文件夹)(directory)路径名(path)的抽象表示,主要用于文件和目录的创建.查找和删除等操作. 一个File对象,代表硬盘中实际存在的一个文件或者目录(文件夹). 绝对路径:从盘符开始的路径,是完整的路径.eg: D:\\aaa\\233.txt 相对路径:相对于项目目录的路径,是便携的路径(开发常用).eg: 233.txt 13.1.1 构造方法 无论该路径下是否存在文件或者目…
一,前言 在学习字符流(FileReader.FileWriter)的时候,其中说如果需要指定编码和缓冲区大小时,可以在字节流的基础上,构造一个InputStreamReader或者OutputStreamWriter,这又是什么意思呢 二,转换流 2.1 OutputStreamWriter类 查阅OutputStreamWriter的API介绍,OutputStreamWriter 是字符流通向字节流的桥梁:可使用指定的字符编码表,将要写入流中的字符编码成字节.它的作用的就是,将字符串按照指…
需求:遍历这个树状结构 File(String pathname) '\\'为了转义'\' // 通过抽象路径pathname 创建一个新的文件或者目录 File parent = new File("E:\\Test\\aa"); // exists 判断文件或目录是否存在:存在为true if(!parent.exists()){ // mkdirs 创建多级目录 parent.mkdirs(); } import java.io.File; public class Test {…