读一个文件,忘记关闭了流,你在操作系统里对这个文件的写,删除等操作就会报错,告诉你这个文件被某个进程占用,这是为什么呢? java是从c++设计来的,但是无论是C语言还是C++,都需要手动释放内存,java不需要. 因为java在对象的引用被消除之后,正常情况下,内存资源是会被垃圾回收. 使用完IO流,必须手动回收,这是为了回收系统资源. 一般来说,需要自己close的东西,都是用了虚拟机之外的资源,例如端口,显存,文件等,虚拟机无法通过垃圾回收释放这些资源,只能显式调用close方法来释放.比…
Java IO(十五)FilterReader 和 FilterWriter.FilterReader 子类PushBackReader 一.介绍 FilterReader 和 FilterWriter 用于读写过滤后的字符流的抽象类.除了简单覆盖父类方法,没有添加额外的方法. FilterReader:过滤器字符输入流,用于读取过滤后的字符流的抽象类. FilterWriter:过滤器字符输出流,用于写入过滤后的字符流的抽象类. (三).子类 FilterWriter没有子类,FilterRe…
1. 概念简介 BufferedInputStream和BufferedOutputStream是带缓冲区的字节输入输出处理流.它们本身并不具有IO流的读取与写入功能,只是在别的流(节点流或其他处理流)上加上缓冲功能以提高效率,就像是把别的流包装起来一样,因此缓冲流是一种处理流.事实上,这两个处理流(BufferedInputStream和 BufferedOutputStream),加上BufferedReader和BufferedWriter,这四个流在设计时使用到的正是装饰设计模式,通过装…
上一篇<Java中的IO流(四)>记录了一下Properties类,此类不属于IO流,它属于集合框架.接下来说一下IO流中的其它流 一,打印流PrintStream PrintStream为其他输出流添加了功能,使它们能够方便地打印各种数据值表示形式.并且此注永远不会抛出IOException. 此流的构造函数大致分三类 1,接收File文件类型的 2,接收OutputStream类型的 3,接收文件名形式的 下演示一下此流的两个方法 private static void function_…
凡是与输入.输出相关的类.接口都定义在java.io包下 java.io.File类 1.File是一个类,可以有构造器创建其对象.此对象对应着一个文件或者一个目录. 2.File中的类,仅涉及到如何查找.创建.删除.重命名文件(.txt .jpg .java)或者目录(io\\io1).如果涉及到文件里的内容的,File是无能为力的,只能用io流. 3.File类的对象常作为io流的具体类的构造器的形参. 4.mkdir和mkdirs:都是创建文件目录,但是mkdirs在没有上层目录的时候把上…
RandomAccessFile java提供的对文件内容的访问,既可以读文件也可以写文件.RandomAccessFile支持随机访问文件,可以访问文件的任意位置 (1)java文件模型:    在硬盘上的文件是byte byte byte存储的,是数据的集合(2)打开文件:    有两种模式“rw"(读写) ”r"(只读)    RandomAccessFile raf = new RandomAccessFile(file,"rw")    文件指针,打开文件…
字符流,只能操作文本文件,不能操作图片.视频等非文本文件 字符输入流 java.io.Reader 字符输入流中一些共性的成员方法 int read():读取单个字符并返回. int read(char[] cbuf):一次读取多个字符,将这些字符存入数组. void close():关闭该流并释放与之关联的所有资源. 文件字符输入流 FileRead extends InputStreamReader extends Reader 构造方法: FileReader(File file): Fi…
转换流: InputStreamReader:字节到字符的桥梁.解码 OutputStreamWriter:字符到字节的桥梁.编码 流的基本规律 1.明白源和汇 源:InputStream.Reader 汇:OutputStream.Writer 2.明白数据是否是纯文本数据 源:假设是.Reader.否,InputStream 汇:假设是,Writer,否,OutputStream 前两点明白后院,体系也就明白了 3.明白详细的设备 源设备: 硬盘:File 键盘:System.in 内存:…
转换流的使用 1.转换流涉及到的类:属于字符流InputStreamReader:将一个字节的输入流转换为字符的输入流解码:字节.字节数组 --->字符数组.字符串 OutputStreamWriter:将一个字符的输出流转换为字节的输出流编码:字符数组.字符串 ---> 字节.字节数组 说明:编码决定了解码的方式 2.作用:提供字节流与字符流之间的转换 3.图示: 4.典型实现: @Test public void test1() throws IOException { FileInput…
对比文件字节流的优势 对于文本文件的数据传输,使用文件字符流,就不用考虑编码转码的问题. 对比文件字节流,在方法上的不同有哪些 文件字符流有append方法: Writer append(char c) Writer append(charSequence csq) 注:charSequence是字符序列,可读可写,String一旦定义不可修改内容,"abc"就是一个字符序列. Writer append(charSequence csq,int start,int end) 从字符序…