- 浏览: 136924 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
winney117:
您好,我的import org.apache.ibatis.i ...
couchDB初级应用实例 -
liujiawinds:
wayneyang3 写道博主你好,不知道你有没有碰到这样的问 ...
couchDB启动报错 -
wayneyang3:
博主你好,不知道你有没有碰到这样的问题:我装完couchdb后 ...
couchDB启动报错 -
liujiawinds:
quan2hua 写道差点被你误导了,substring是不会 ...
内存泄露简介 -
quan2hua:
差点被你误导了,substring是不会内存泄露的 。
内存泄露简介
简介
Reader和Writer类----提供兼容Unicode与面向字符的I/O的功能。
InputStream和OutputStream提供以面向字节形式的I/O功能。
使用方式
字符:文件输入:FileReader--àBufferedReader-àString(或者StringBuffer)
文件输出:FileWriter--àBufferedWriter--àPrintWriter
字节:
文件输入:File--> FileInputStream-> BufferedInputStream 文件输出:File--> FileOutputStream--> BufferedOutputStream
能用reader(执行速度快),就不用stream。使用时为了效率,都应使用缓冲流(执行速度快)进行包装。
一、文件类
目录列表器 list
目录的检查及创建
二、输入输出
通过继承,任何自InputStream或Reader衍生而来的类都含有名为read()的基本方法,用于读取单字节或者字节数组。
任何自OutputStream或Writer衍生而来的类都含有名为write()的基本方法,用于写单个字节或者字节数组。
很少使用一个单一的类来创建流对象,相反会通过叠合多个对象来提供所期望的功能。
与输入有关的所有类都应该从InputStream继承,而与输出有关的所有类都应该从OutputStream继承。
三、InputStream类型
作用是用来表示那些从不同数据源产生输入的类。这些数据源包括:
1、 字节数组
2、 String对象
3、 文件
4、 “管道”,工作方式与实际管道类似:从一端输入,从另一端输出。
5、 一个由其他的流组成的序列
6、 其他数据源,如Internet连接等。
每一种数据源都有相应的InputStream子类。另外,FilterInputStream也属于一种InputStream,为“decorator”类提供基类,其中,“decorator”类可以把属性或有用的接口与输入流连接在一起。
四、OutputStream类型
字节数组、文件和管道
另外,FilerOutputStream为“修饰器(decortor)”类提供了一个基类,“修饰器”类把属性或者有用的接口与输出流连接了起来。
五、FilterInputStream 和FilerOutputStream添加属性和有用的接口
利用层叠的数个对象为单个对象动态地和透明地添加职责的方式,称作“修饰器”模式。
修饰器模式规定所有封装于初始对象内部的对象具有相同的接口。
抽象类“filter”是所有修饰类的基类。(修饰器必须具有和它所修饰的对象相同的接口,但是修饰器也可以扩展接口,这种情况发生在几种“filter”类中)。
通过FilterInputStream从InputStream中读入数据
通过FilterOutputStream从OutputStream写入数据
六、读和写
Reader和Writer类----提供兼容Unicode与面向字符的I/O的功能。
InputStream和OutputStream提供以面向字节形式的I/O功能。
设计Reader和Writer继承层次结构主要是为了国际化。
数据的来源和去处
(特别地,java.util.zip类库就是使用面向字节的而不是面向字符的。)
七、I/O流的典型使用方式
字符
文件输入:FileReader-->BufferedReader->String(或者StringBuffer) while((s=in.readLine())!=null) S1+=s+”\n”;
InputStreamReader--àBufferedReader-àString
文件输出:(String--àStringReader-à BufferedReader)
FileWriter-->BufferedWriter-->PrintWriter
while((s=in.readLine())!=null) out.println(lineCount++ +”: “ +s);
字节
文件输入:File--> FileInputStream-> BufferedInputStream 文件输出:File--> FileOutputStream--> BufferedOutputStream
for (int i = 0; i < count; i++) { Buff.write("".getBytes()); }
Buff.flush();
Buff.close();
FileInputStream
用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用FileReader
。
FileOutputStream
用于写入诸如图像数据之类的原始字节的流。要写入字符流,请考虑使用FileWriter
。
能用reader(执行速度快),就不用stream。使用时为了效率,都应使用缓冲流(执行速度快)进行包装。
如:BufferedReader in
= new BufferedReader(new FileReader("foo.in"));
BufferedReader in
= new BufferedReader(new InputStreamReader(System.in));
PrintWriter out
= new PrintWriter(new BufferedWriter(new FileWriter("foo.out")));
八、存储和恢复数据
DataOutputStream和DataInputStream (流可以使任何形式)
如果我们使用DataOutputStream写入数据,Java保证我们可以使用DataInputStream准确地读取数据—无论读和写数据的平台怎么不同。
写字符串并且能够恢复它的唯一可靠的做法就是使用UTF-8编码。
九、读写随机访问文件:RandomAccessFile。
RandomAccessFile除了实现DataInput和DataOutput接口之外,几乎完全独立于I/O继承层次结构的其他部分,所以不能将其与InputStream及OutputStream子类的任何部分组合起来。
十、文件读写的实用工具
标准I/O: System.in System.out System.err
System.out System.err 已经事先被包装成了PrintStream对象,可以立即使用。
System.in 是一个没有被包装的未加工的InputStream,读取之前必须对其进行包装。
将System.out转换成PrintWriter:PrintWriter out=new PrintWriter(System.out,true);
压缩 对象序列化
发表评论
-
内存泄露简介
2014-01-02 15:57 22441. 什么是内存泄露? 内存泄露: 对象不再被使用,但是 ... -
Log4j配置语句解释
2013-08-07 17:10 1211log4j ... -
Asprise OCR识别图片内容
2013-07-31 10:12 2070女朋友扫雷很厉害,我昨天又败给她了。 当时我就在想,j ... -
关于try catch finally执行顺序的一点疑问
2013-06-20 08:33 1044public class TryCatchOrder { ... -
Java operator precedence
2013-04-12 17:55 891Operator Description Lev ... -
ArrayList浅析
2013-01-16 16:47 818ArrayList是线性存储结构,底层实现基于数组, 跟 ... -
List的三种遍历方式
2012-12-12 12:39 1296第一种:不推荐 for(int i=0,len=li ... -
File里面的compareTo()方法
2012-12-12 10:30 1118public class Compare { ... -
istanceof 的作用和用法
2012-12-11 15:07 1146instanceof的作用是判断一个对象是否是后面类的实例。 ... -
Thread跟Runnable的区别
2012-12-01 18:51 1216Runnable是Thread的接口,在大多数情况下“推荐用接 ... -
事务的特性
2012-10-12 09:33 751事务(Transaction)是并发控制的单位,是用户定义的一 ... -
HashTable和HashMap的区别
2012-07-17 09:12 829转自:http://oznyang.iteye.com/ ... -
两数组求交集
2012-07-04 21:58 956import java.util.ArrayLis ... -
java.io部分API
2012-04-25 19:54 700常用 (一)、字节流 1、java.io.Input ... -
有关服务器,web 服务器,web容器的一点总结
2012-04-25 09:13 974所谓的服务器,广义上讲有很多的概念,硬件角度上说就是一台高性能 ... -
各种IO程序(适合初学者)
2012-04-23 19:33 857public class FilenameFilterTes ... -
java基础知识汇总
2012-04-21 11:34 9031、面向对象的特征有哪些方面 1.抽象: 抽象就是忽略一个主 ... -
Java中super的几种用法并与this的区别
2012-04-20 23:09 11151. 子类的构造函数如果要引用super的话,必须把s ... -
Java初学者都必须理解的六大问题
2012-04-19 22:36 879问题一:我声明了什么! String s = " ... -
使用java中的Date和Calendar类
2012-04-18 15:37 905Java 语言的Calendar(日历),Date(日期), ...
相关推荐
本知识点的解析将围绕Java IO的基础和高级特性进行展开,为Java初学者提供清晰的学习路径。 首先,Java IO提供了两种数据流,即字节流和字符流。字节流主要用于处理二进制数据,如文件读写和网络数据传输。字符流则...
### Java IO 流详解 #### 一、Java IO 流概念及作用 Java IO(Input/Output)流是Java编程语言中的一个重要组成部分,主要用于处理数据的输入与输出。流(Stream)可以理解为一组有序的、有起点和终点的字节集合,...
本篇文章将全面解析Java IO处理类,包括基本概念、常用类库、流的概念及分类,以及实际编程中的应用。 首先,Java IO体系基于流(Stream)的概念,流是数据的序列,可以是从输入源读取或向输出目标写入。Java IO提供...
Java IO编程是Java平台中处理输入输出操作的重要组成部分,它提供了丰富的类库,使得开发者能够高效地进行数据的读取、写入、流的管理和转换。在这个集合中,我们主要探讨的是Java IO在文件读写方面的实践应用。 一...
Java IO流是Java平台中用于处理输入/输出操作的核心组件,它允许程序与各种数据源(如文件、网络连接、内存缓冲区等)进行交互。Java IO流的精讲涵盖了许多概念和技术,包括流的分类、流的方向、缓冲区的使用、字符...
### Java IO系统全面解析 #### 一、Java IO系统概述 Java IO系统是Java平台标准库中的一个重要组成部分,主要用于处理输入输出操作。Java IO系统主要包括两个包:`java.io`和`java.nio`(New IO),其中`java.io`...
本篇文章将全面解析Java IO工具类,帮助你理解并掌握其在实际开发中的应用。 一、Java IO基础 Java IO体系主要由流(Stream)组成,分为字节流和字符流两大类,分别处理字节数据和字符数据。字节流包括InputStream...
### Java.io.Reader与Java.io.InputStream的关键差异解析 在深入探讨`java.io.Reader`与`java.io.InputStream`的具体差异之前,我们首先需要理解这两者在Java I/O操作中的基础角色。`java.io.Reader`和`java.io....
以上就是关于Java IO读写文件的基本操作及如何从一个文件中筛选数据并保存到另一个文件中的详细解析。通过这种方式,我们可以有效地处理文本文件中的数据,实现数据的筛选和转换功能。这对于处理大量数据、进行数据...
### Java IO 类层次结构解析 #### 一、概述 Java IO(Input/Output)系统是Java平台中的一个重要组成部分,用于处理程序与外部设备之间的数据交换。Java IO系统提供了丰富的类来支持不同类型的输入输出操作,包括...
### Java IO口解析(初级) #### 一、Java IO系统概览 Java 的核心库 `java.io` 提供了全面的输入输出接口,涵盖了文件读写、标准设备输出等多种应用场景。Java 中的输入输出操作是基于流的方式进行的,所有数据被...
我们可以使用Java IO流读取这个文件,然后用DOM解析XML,将结果存储在一个泛型集合中。如下所示: ```java import java.io.*; import javax.xml.parsers.*; import org.w3c.dom.*; public class Example { public...
IO流是Java编程语言中的一个关键特性,用于处理程序与外部设备(如硬盘、网络、内存等)之间的数据传输。IO流分为两大类:字符流和字节流,分别处理字符数据和原始二进制数据。字符流适用于文本文件,而字节流则适用...
Java解析JSON文件是Java开发中常见的一项任务,特别是在与Web服务交互或处理API响应时。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,因其简洁和易于阅读及编写的特点,被广泛应用于网络数据传输...
Java IO(Input/Output)是Java编程语言中用于处理输入和输出操作的重要组成部分。这个课件集合涵盖了多个示例代码,旨在帮助学习者深入理解Java IO系统的工作原理和使用方法。以下将根据提供的文件名来解析和解释...
import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; import java.io.Reader; /** * @author...
在Java编程语言中,IO(Input/Output)操作是处理数据输入和输出的关键部分,而将字符串解析为数值数组则是日常编程中常见的任务。本文将深入探讨这两个主题,并结合提供的两个文件名`TestWriteD.java`和`TestSplitD...
Java实现解析dcm医学影像文件并提取文件信息的方法示例 本文主要介绍了Java实现解析dcm医学影像文件并提取文件信息的方法,结合实例形式分析了Java基于第三方库文件针对dcm医学影像文件的解析操作相关实现技巧。...