- 浏览: 137822 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
z360194753:
够详细了
io流 -
yang1527866:
挺详细的
io流 -
anttu:
...
从键盘输入数据 -
haha12333:
谢啦~~~~~
myeclipse 更改项目名 -
幽奇猫:
got it.
thx very much.
foreach
一、流的概念
流一般分为输入流和输出流两类,但这种划分并不是绝对的。比如一个文件,当向其中写数据时,它就是一个输出流;当从其中读取数据时,它就是一个输入流。当然,键盘只是一个输入流,而屏幕则只是一个输出流。输入流输出流指的是传输中的连续不断的数据集合。
二、流的分类
流按照处理数据的单位可分为两种:字节流和字符流.(相对于内存)
输入流类 输出流类
字节流类 InputStream OutputStream
字符流类 Reader Writer
以上四个I/O流类都是抽象类,不能直接使用
三、流结构
1、InputStream
FileInputStream:从文件系统中的某个文件中获得输入字节。哪些文件可用取决于主机环境。
用于读取诸如图像数据之类的原始字节流。要读取字符流,请考虑使用 FileReader。
FilterInputStream:包含其他一些输入流,它将这些流用作其基本数据源,它可以直接传输数据或提供一些额外的功能。
类本身只是简单地重写那些将所有请求传递给所包含输入流的 InputStream 的所有方法。
该类子类可进一步重写这些方法中的一些方法,并且还可以提供一些额外的方法和字段。
---BufferedInputStream:为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。在创建
BufferedInputStream 时,会创建一个内部缓冲区数组。在读取或跳过流中的字节时,可
根据需要从包含的输入流再次填充该内部缓冲区,一次填充多个字节。mark 操作记录输入
流中的某个点,reset 操作使得在从包含的输入流中获取新字节之前,再次读取自最后一次
mark 操作后读取的所有字节。
2.OutputStream
FileOutputStream:文件输出流是用于将数据写入 File
或 FileDescriptor
的输出流。文件是否可用或能否可以被
创建取决于基础平台。特别是某些平台一次只允许一个 FileOutputStream(或其他文件写入对
象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法将失
败。 FileOutputStream
用于写入诸如图像数据之类的原始字节的流。要写入字符流,请考虑使
用 FileWriter
。
FilterOutputStream:此类是过滤输出流的所有类的超类。类本身只是简单地重写那些将所有请求传递给所包含输出流的
OutputStream
的所有方法。
---BufferedOutputStream:该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流
中,而不必针对每次字节写入调用底层系统。
3.Reader
BufferedReader:从字符输入流中读取文本,缓冲各个字符。通常,Reader 所作的每个读取请求都会导致对底层字符
或字节流进行相应的读取请求。因此,建议用BufferedReader 包装所有其 read() 操作可能开销很
高的 Reader(如 FileReader 和 InputStreamReader)。例如,
BufferedReader in = new BufferedReader(new FileReader("foo.in"));
InputStreamReader:将字节流转换为字符流。每次调用 InputStreamReader 中的一个 read() 方法都会导致从底
层输入流读取一个或多个字节。要启用从字节到字符的有效转换,可以提前从底层流读取更多的
字节,使其超过满足当前读取操作所需的字节。 为了达到最高效率,可要考虑在
BufferedReader 内包装 InputStreamReader。例如:
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
---FileReader:用来读取字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是适当的。要自
定这些值,可以先在 FileInputStream 上构造一个 InputStreamReader。FileReader 用于读取字
。要读取原始字节流,请考虑使用 FileInputStream。
StringReader:其源为一个字符串的字符流。 构造方法StringReader(String s) 创建一个新字符串 reader。
4.Writer
BufferedWriter:将文本写入字符输出流,缓冲各个字符,从而提供单个字符、数组和字符串的高效写入。
OutputStreamWriter:将字节流转换为字符流。
Writer out = new BufferedWriter(new OutputStreamWriter(System.out));
---FileWriter:用来写入字符文件的便捷类。此类的构造方法假定默认字符编码和默认字节缓冲区大小都是可接受的。要
自己指定这些值,可以先在 FileOutputStream 上构造一个 OutputStreamWriter。
文件是否可用或是否可以被创建取决于底层平台。特别是某些平台一次只允许一个 FileWriter(或其 他文件写入对象)打开文件进行写入。在这种情况下,如果所涉及的文件已经打开,则此类中的构造方法 将失败。FileWriter
用于写入字符流。要写入原始字节流,请考虑使用 FileOutputStream
。
发表评论
-
关于类的初始化顺序
2010-08-20 09:32 652一、一个类中 1、静态变量、静态初始化块 //次两者由书写 ... -
同步异步
2010-08-18 06:31 1041同步和异步的区别 举个例子:普通B/S模式(同步)AJAX技术 ... -
String与StringBuffer
2010-08-18 06:22 8261、String String代表字符 ... -
static块
2010-08-05 16:08 6971、static块与static的联系 static int ... -
开发中的乱码处理
2010-08-05 15:14 798开发环境中的编码要统一:页面、数据库、servlet、js都为 ... -
简述java动态代理
2010-08-01 16:26 883一、动态代理简单实现 1、代理类要实现java.lang.r ... -
System.getProperty()
2010-07-31 22:53 665From jdk 1.5.0 documents j ... -
java 日期格式化
2010-07-17 07:56 10241、从数据库里取出Date类型的数据进行格式化 Date d ... -
jsp+servlet分页
2010-04-07 06:45 13791、servlet String pageS ... -
include和forward的区别:
2010-04-06 02:34 1153include和forward的区别: incl ... -
StringBuilder取代StringBuffer
2010-04-02 13:40 705区别在于前者线程不安全 可变的字符 ... -
java filter过滤器乱码问题
2010-03-26 13:18 1268public void doFilter(ServletReq ... -
<转载><感谢>Servlet路径问题
2010-03-25 11:22 1428你的应用访问地址是"http://192.168.0 ... -
java路径问题
2010-03-25 10:50 764一、servlet路径 webapp/ //当前Web工 ... -
Iterator 迭代器 fail-fast
2010-03-24 14:15 1202一、Collection 接口的itera ... -
集合类选择
2010-03-19 05:53 671HashSet、HashMap采用哈希结构,速度快 Arra ... -
JAVA 编程规范
2010-03-17 16:13 761JAVA 编程规范 1. 应用范围 本规范应用于采用 ... -
TreeSet类compareTo()方法重写
2010-03-12 17:39 27571、TreeSet判断两个对象不等的条件: 两个对 ... -
数组初始化
2010-03-12 03:39 802一、定义数组 type[] arrayName; ... -
集合元素的遍历
2010-03-12 03:13 748public void Function() { ...
相关推荐
2、常用21个IO流:FileWriter、FileReader、CharArrayReader、CharArrayWriter、CharSequence、OutputStreamWriter、FileOutputStream、InputStreamReader、PrintWriter、BufferedReader、InputStream、...
JAVAIO流总结宝典,分享给大家,总结较为全面
IO流 javaio java 流
本人是初学者,在老师的指导下,将自身对Java中IO流的理解做成以下思维导图
java基础之IO流,基础简介知识,帮助你了解java的io技术
思维导图io流思维导图io流思维导图io流思维导图io流思维导图io流思维导图io流
map集合的特性和它的遍历方式 还有一个根据Set特性的一个排序 以及IO流 字节流和字符流实现代码
IO流文件的复制
关于java的IO流基础的练习,适合刚接触IO流,没有基础的同学
IO流
IO流的主要流
一,IO流的实现方式 1:用的是装饰模式,装饰模式有四个角色,分别是通用接口、本原、抽象装饰、 具体装饰,因为是将本原聚合到了装饰中,所以可以将本原或装饰通过构造子注入到 另一个装饰,多个装饰可以随意...
适用于刚学习过Java,尚未学习数据库的人,因为本程序要存储学生以及老师账户,需要用到IO流写的操作
该文档主要整理了Java IO流的相关信息,主要包括IO流的按照不同维度的分类、节点流、处理流、输入输出流的处理过程、抽象基类的使用等细节内容
Java中文件IO流.pdf 学习资料 复习资料 教学资源
IO流..
彻底明白Java的IO流
IO流读取和创建文件IO流读取和创建文件IO流读取和创建文件IO流读取和创建文件IO流读取和创建文件
JAVA教程 io流操作 JAVA教程 io流操作 JAVA教程 io流操作
java之io流实例应用。