- 浏览: 822414 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
Java基础IO流的简单总结
刚好初级部分讲到了IO流这一块,所以就来个小小的总结,这份总结没有任何实例代码,单纯是总结,想要试验一下的可以自己拿代码来做实验,毕竟“实践是检验真理的唯一标准”,希望可以对大家有小小的帮助。红色字体是我们经常要用到,大家多练习一下。
********************正文开始***********************************
一 IO流的三种分类方式:
1.按照流向来分:
输入流:只能从中读取字节数据,不能向其写出数据
输出流:只能向其写入字节数据,不能从中读取数据
2.按照流所处理的数据类型划分:可分为:
字节流:用于处理字节数据。
字符流:用于处理Unicode字符数据。
3.按照格式可以分为:
节点流(低级流):可以从/向一个特定的IO设备(如磁盘,网络)读/写数据的流。
处理流(高级流):可以对一个已存在的流的连接和封装,通过所封装的流的功能实现数据读写功能的流。
二 IO流的四大抽象类:
1.常见InputStream类(读数据)
-低级
InputStream
FileInputStream
ByteArrayInputStream
PipedInputStream
-高级
DataInputStream
BufferedInputStream
2.常见OutputStream(写数据)
-低级
OutputStream
FileOutputStream
ByteArrayOutputStream
PipedOutputStream
-高级
DataOutputStream
BufferedOutputStream
3.常见的Reader类
-低级
CharArrayReader
StringReader
PipedReader
FileReader
-高级
BufferedReader
InputStreamReader
LineNumberReader
4.常见的Writer相关类
-低级
CharArrayWriter
StringWriter
PipedWriter
FileWriter
-高级
BufferedWriter
OutputStreamWriter
PrintWriter
注意:所有高级流都不能直接IO设备(磁盘或网络等)进行直接的交互,必须建立在低级流的基础之上。
三 缓冲流:
BufferedReader ->Reader
BufferedWriter
BufferedInputStream ->InputStream
BufferedOutputStream
缓冲流输入流 支持其父类的mark()和reset()方法。
mark()方法用于“标记”当前位置,就像加入了一个书签,可以使reset()方法返回这个标记重新读取数据。
BufferedReader -readLine() --以\r或\n分隔
BufferedWriter -newLine() --写入一个行分隔符
BufferInputStream和BufferedOutputStream平时很少用到。
四 InputStream的基本方法
1.int read() throws IOException 读取一个字节以整数形式返回,如果返回-1证明读到文件的末尾。
int read(byte[] buffer) throws IOException 将数据读入一个字节数组,同时返回读取的字节数。
int read(byte[] buffer,int offset,int length) throws IOException 将数据读入一个字节数组,放到数组的offset指定的位置开始,并用length来制定读取的最大字节数。
2.void close() throws IOException 关闭流释放内存资源
3.int available()返回可以ong种读取的字节数。
4.long skip(long n)在输入流中跳过n个字节,将实际跳过的字节数返回
5.boolean markSupported() 判断流是否支持标记功能。
6.void mark(int readlimit)在支持标记的输入流的当前位置设置一个标记。
7.void reset() 返回到流的上一个标记。注意必须支持标记功能。
五 OutputStream的基本方法
1.viod write(int b)throws IOException向输出流写入一个字节数据。
void write(byte[] buffer)
void write(byte[] buffer,int offset,int length)
2.viod flush() 将输出流中缓冲的数据全部写出到目的地。
3.void close() 关闭流
六 Writer的基本方法
1.void write(int c) throws IOException 向输出流中写入一个字符数据。
void write(char[] buffer) 将字符数组buffer中的字符写入到流中
void write(char[] buffer,int offset,int length) 将字符数组buffer中从offset开始的length个字符写入到流中
void write(String str) throws IOException 将一个字符串中的字符写入到输出流
void write(String str,int offset,int length)将一个字符串从offset开始的length个字符写入到输出流
4.void flush() 将输出流中缓冲的数据全部写出到目的地。
七 Reader的基本方法
1.int read() 读取一个字符以整数形式返回,如果返回-1证明已到流的末尾。
int read(char[] buffer)将从流中读出的字符放到字符数组buffer中,返回读出的字符数。
int read(char[] buffer,int offset,int length) 将读出的字符放到字符数组的指定offset开始的空间,每次最多读出length个字符。
2.void close();
3.skip(long n)
4.void mark(int readlimit)
5.void reset()
八 访问文件类
1.FileInputStream和FileOutputStream继承基类用于向文件中输入输出字节
2.FileReader和FileWriter继承基类用于向文件中输入输出字符。
注意:a.输出流在构造函数第二个参数可以设置true,表示在文件的末尾进行追加写入。
b.此类流会抛出FileNotFoundException异常。
九 转换流:主要作用是将字节流转换为字符流。
1.InputStreamReader需要和InputStream套接
2.OutputStreamWriter需要和OutputStream套接
十 数据流与字节数组流:
1.数据流主要为实现可以存取java原始数据类型,如long,boolean等
数据流是字节流
2.DataInputStream需要和InputStream套接
DataOutputStream需要和OutputStream套接
3.DataInputStream的方法:
-readBoolean();readInt();read...
-readUTF()网络传输常用方法,读一个Unicode字符串
4.DataOutputStream方法与DataInputStream中的方法对应
5.//此构造函数等于已可以往一个字节数组里输入内容
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//此方法为获取一个字节数组方法返回字节数组
baos.toByteArray();
//此方法获取字节数组占了多少字节
new ByteArrayInputStream(byte[]).available()
十一 Print流
1.Print流只有输出流没有输入流,PrintWriter和PrintStream分别针对字符和字节
2.提供print和println方法,用于多种数据类型的输出。
3.输出操作不会抛出异常。
4.PrintWriter和PrintStream可设置自动刷新功能。
十二 Object流
1.序列化,用于直接将Object写入或者读出。
2.static和transient关键字修饰的属性是不能被序列化的。
3.需要序列化的类必须实现Serializable接口或者Externalizable
4.方法:
-writeObject(Object obj)
-Object readObject();
若想得到Object的原始类型,需要通过强制转型。
十三 特殊的文件流(RandomAccessFile)
1.RandomAccessFile是一种特殊的文件流,可以用它在文件的任何地方查找或插入数据
2.RandomAccessFile同时实现了DataInput和DataOutput接口,所以可以用它来读写文件
3.构造器
-RandomAccessFile(File file,String mode)
-RandomAccessFile(String file,String mode)
4.利用RandomAccessFile来追加文件内容:
RandomAccessFile rf1 = new RandomAccessFile("c:\\1.txt","rw");
rf1.seek(rf1.length());
rf1.writeBytes(str + "\n"); //此处若想输入的文本看起来是换行的,需加\n\r
rf1.close();
随机文件这块同学们可以自己试试。
十四 读取文件匹配流
1. FileInputStream/FileOutputStream
2. FileReader/FileWriter
3. BufferedReader/PrintWriter
**************************************
决定使用哪个类,以及构造进程的一般原则是:
1.首先考虑原始的数据格式是什么?
a.二进制格式(只要不能确定是纯文本的): InputStream, OutputStream及其所有带Stream结束的子类
b.纯文本格式(含纯英文与汉字或其他编码方式);Reader, Writer及其子类
2.考虑是输入还是输出?
a.输入:Reader, InputStream类型的子类
b.输出:Writer, OutputStream类型的子类
3.是否需要通过中介?
a.从Stream到Reader,Writer的转换类:InputStreamReader, OutputStreamWriter
b.低级流到高级流的转换
4.数据的来源或者去向是什么?
a.是文件: FileInputStream, FileOutputStream, FileReader, FileWriter
b.是byte[]:ByteArrayInputStream, ByteArrayOutputStream
c.是Char[]: CharArrayReader, CharArrayWriter
d.是String: StringBufferInputStream, StringReader, StringWriter
e.网络数据流:InputStream, OutputStream, Reader, Writer
5.是否要缓冲?
a.若需要就是四种缓冲类:BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter
6.是否要格式化输出?
刚好初级部分讲到了IO流这一块,所以就来个小小的总结,这份总结没有任何实例代码,单纯是总结,想要试验一下的可以自己拿代码来做实验,毕竟“实践是检验真理的唯一标准”,希望可以对大家有小小的帮助。红色字体是我们经常要用到,大家多练习一下。
********************正文开始***********************************
一 IO流的三种分类方式:
1.按照流向来分:
输入流:只能从中读取字节数据,不能向其写出数据
输出流:只能向其写入字节数据,不能从中读取数据
2.按照流所处理的数据类型划分:可分为:
字节流:用于处理字节数据。
字符流:用于处理Unicode字符数据。
3.按照格式可以分为:
节点流(低级流):可以从/向一个特定的IO设备(如磁盘,网络)读/写数据的流。
处理流(高级流):可以对一个已存在的流的连接和封装,通过所封装的流的功能实现数据读写功能的流。
二 IO流的四大抽象类:
1.常见InputStream类(读数据)
-低级
InputStream
FileInputStream
ByteArrayInputStream
PipedInputStream
-高级
DataInputStream
BufferedInputStream
2.常见OutputStream(写数据)
-低级
OutputStream
FileOutputStream
ByteArrayOutputStream
PipedOutputStream
-高级
DataOutputStream
BufferedOutputStream
3.常见的Reader类
-低级
CharArrayReader
StringReader
PipedReader
FileReader
-高级
BufferedReader
InputStreamReader
LineNumberReader
4.常见的Writer相关类
-低级
CharArrayWriter
StringWriter
PipedWriter
FileWriter
-高级
BufferedWriter
OutputStreamWriter
PrintWriter
注意:所有高级流都不能直接IO设备(磁盘或网络等)进行直接的交互,必须建立在低级流的基础之上。
三 缓冲流:
BufferedReader ->Reader
BufferedWriter
BufferedInputStream ->InputStream
BufferedOutputStream
缓冲流输入流 支持其父类的mark()和reset()方法。
mark()方法用于“标记”当前位置,就像加入了一个书签,可以使reset()方法返回这个标记重新读取数据。
BufferedReader -readLine() --以\r或\n分隔
BufferedWriter -newLine() --写入一个行分隔符
BufferInputStream和BufferedOutputStream平时很少用到。
四 InputStream的基本方法
1.int read() throws IOException 读取一个字节以整数形式返回,如果返回-1证明读到文件的末尾。
int read(byte[] buffer) throws IOException 将数据读入一个字节数组,同时返回读取的字节数。
int read(byte[] buffer,int offset,int length) throws IOException 将数据读入一个字节数组,放到数组的offset指定的位置开始,并用length来制定读取的最大字节数。
2.void close() throws IOException 关闭流释放内存资源
3.int available()返回可以ong种读取的字节数。
4.long skip(long n)在输入流中跳过n个字节,将实际跳过的字节数返回
5.boolean markSupported() 判断流是否支持标记功能。
6.void mark(int readlimit)在支持标记的输入流的当前位置设置一个标记。
7.void reset() 返回到流的上一个标记。注意必须支持标记功能。
五 OutputStream的基本方法
1.viod write(int b)throws IOException向输出流写入一个字节数据。
void write(byte[] buffer)
void write(byte[] buffer,int offset,int length)
2.viod flush() 将输出流中缓冲的数据全部写出到目的地。
3.void close() 关闭流
六 Writer的基本方法
1.void write(int c) throws IOException 向输出流中写入一个字符数据。
void write(char[] buffer) 将字符数组buffer中的字符写入到流中
void write(char[] buffer,int offset,int length) 将字符数组buffer中从offset开始的length个字符写入到流中
void write(String str) throws IOException 将一个字符串中的字符写入到输出流
void write(String str,int offset,int length)将一个字符串从offset开始的length个字符写入到输出流
4.void flush() 将输出流中缓冲的数据全部写出到目的地。
七 Reader的基本方法
1.int read() 读取一个字符以整数形式返回,如果返回-1证明已到流的末尾。
int read(char[] buffer)将从流中读出的字符放到字符数组buffer中,返回读出的字符数。
int read(char[] buffer,int offset,int length) 将读出的字符放到字符数组的指定offset开始的空间,每次最多读出length个字符。
2.void close();
3.skip(long n)
4.void mark(int readlimit)
5.void reset()
八 访问文件类
1.FileInputStream和FileOutputStream继承基类用于向文件中输入输出字节
2.FileReader和FileWriter继承基类用于向文件中输入输出字符。
注意:a.输出流在构造函数第二个参数可以设置true,表示在文件的末尾进行追加写入。
b.此类流会抛出FileNotFoundException异常。
九 转换流:主要作用是将字节流转换为字符流。
1.InputStreamReader需要和InputStream套接
2.OutputStreamWriter需要和OutputStream套接
十 数据流与字节数组流:
1.数据流主要为实现可以存取java原始数据类型,如long,boolean等
数据流是字节流
2.DataInputStream需要和InputStream套接
DataOutputStream需要和OutputStream套接
3.DataInputStream的方法:
-readBoolean();readInt();read...
-readUTF()网络传输常用方法,读一个Unicode字符串
4.DataOutputStream方法与DataInputStream中的方法对应
5.//此构造函数等于已可以往一个字节数组里输入内容
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//此方法为获取一个字节数组方法返回字节数组
baos.toByteArray();
//此方法获取字节数组占了多少字节
new ByteArrayInputStream(byte[]).available()
十一 Print流
1.Print流只有输出流没有输入流,PrintWriter和PrintStream分别针对字符和字节
2.提供print和println方法,用于多种数据类型的输出。
3.输出操作不会抛出异常。
4.PrintWriter和PrintStream可设置自动刷新功能。
十二 Object流
1.序列化,用于直接将Object写入或者读出。
2.static和transient关键字修饰的属性是不能被序列化的。
3.需要序列化的类必须实现Serializable接口或者Externalizable
4.方法:
-writeObject(Object obj)
-Object readObject();
若想得到Object的原始类型,需要通过强制转型。
十三 特殊的文件流(RandomAccessFile)
1.RandomAccessFile是一种特殊的文件流,可以用它在文件的任何地方查找或插入数据
2.RandomAccessFile同时实现了DataInput和DataOutput接口,所以可以用它来读写文件
3.构造器
-RandomAccessFile(File file,String mode)
-RandomAccessFile(String file,String mode)
4.利用RandomAccessFile来追加文件内容:
RandomAccessFile rf1 = new RandomAccessFile("c:\\1.txt","rw");
rf1.seek(rf1.length());
rf1.writeBytes(str + "\n"); //此处若想输入的文本看起来是换行的,需加\n\r
rf1.close();
随机文件这块同学们可以自己试试。
十四 读取文件匹配流
1. FileInputStream/FileOutputStream
2. FileReader/FileWriter
3. BufferedReader/PrintWriter
**************************************
决定使用哪个类,以及构造进程的一般原则是:
1.首先考虑原始的数据格式是什么?
a.二进制格式(只要不能确定是纯文本的): InputStream, OutputStream及其所有带Stream结束的子类
b.纯文本格式(含纯英文与汉字或其他编码方式);Reader, Writer及其子类
2.考虑是输入还是输出?
a.输入:Reader, InputStream类型的子类
b.输出:Writer, OutputStream类型的子类
3.是否需要通过中介?
a.从Stream到Reader,Writer的转换类:InputStreamReader, OutputStreamWriter
b.低级流到高级流的转换
4.数据的来源或者去向是什么?
a.是文件: FileInputStream, FileOutputStream, FileReader, FileWriter
b.是byte[]:ByteArrayInputStream, ByteArrayOutputStream
c.是Char[]: CharArrayReader, CharArrayWriter
d.是String: StringBufferInputStream, StringReader, StringWriter
e.网络数据流:InputStream, OutputStream, Reader, Writer
5.是否要缓冲?
a.若需要就是四种缓冲类:BufferedInputStream, BufferedOutputStream, BufferedReader, BufferedWriter
6.是否要格式化输出?
相关推荐
### Java IO流基础知识点 #### 一、IO流概述 - **定义**:在Java中,IO流(Input/Output Streams)是用来处理输入输出的基本工具。流是一种有序的数据集合,通常涉及从源到目的地的数据传输过程。源可以是文件、...
本练习旨在帮助初学者理解和掌握Java IO流的基础知识。 一、IO流的概念 IO流在Java中分为两大类:输入流(Input Stream)和输出流(Output Stream)。输入流用于从源(如文件、网络连接等)读取数据,而输出流则...
总的来说,Java IO流是一个强大的工具集,它涵盖了各种数据源和目标的输入输出操作,从简单的文件读写到复杂的网络通信和对象序列化。理解并熟练运用Java IO流是成为一名合格的Java开发者的必备技能之一。通过深入...
在这个示例中,我们将深入探讨如何利用Java IO流与Socket实现简单的文本传输。对于初学者来说,理解这两个概念及其交互是非常关键的。 首先,让我们来了解Java IO流。IO流在Java中用于读取和写入数据,它可以是文件...
Java的IO流是程序与外部交互数据的重要工具,它允许开发者实现数据的读取、写入、复制和转换。在Java中,流被分为两类:字节流(Byte Stream)和字符流(Character Stream),它们都是Java IO体系的一部分。 字节流...
### Java IO流处理详解 #### I/O流概述 在Java编程中,输入/输出(I/O)处理是一项核心技能,涉及从键盘读取数据、向屏幕输出数据、从文件读写数据以及在网络连接上进行读写操作。Java将这些不同的输入输出源抽象...
在其分享的《Java Io流总结》文档中,详细介绍了Java IO流的基础概念、分类、特性以及常见异常等内容。 **Java中为什么提出流的概念?** 在Java中,引入流的概念主要是为了能够更加方便、高效地处理各种类型的输入...
Java基础知识中的IO流是编程中不可或缺的部分,尤其在处理数据输入和输出时。IO(Input/Output)流在Java中提供了高效且灵活的方式来传输数据,无论是从硬盘、网络、内存还是其他外部设备。理解并熟练掌握Java IO流...
总结一下,Java的IO流提供了丰富的工具来处理文件复制。字节流是最基础的流类型,适用于任何类型的数据。通过组合不同的输入流和输出流,我们可以构建出适应不同需求的文件操作解决方案。理解并熟练掌握IO流的使用,...
### Java的IO流操作 #### 一、Java IO流概述 在Java中,输入/输出(Input/Output,简称IO)流是进行数据读写的基础技术。Java的IO流主要包含两大类:字节流(byte stream)和字符流(character stream)。字节流...
`java.io.Reader`和`java.io.InputStream`是Java标准库中处理输入数据的核心类,它们分别针对字符流和字节流提供了基础的支持。 #### `java.io.Reader`:字符流的读取器 `java.io.Reader`是所有字符输入流的超类。...
Java IO流是Java编程中非常基础且重要的部分,无论是进行简单的文件操作还是复杂的网络通信,都离不开对IO流的理解和应用。掌握Java IO流不仅可以提高代码的可维护性和扩展性,还能有效提升程序员解决问题的能力。...
Java IO流是进行文件读写操作的基础,通过对不同类型的流进行组合使用,可以实现复杂的文件处理任务。掌握Java IO流的基本概念和操作方法,对于开发高质量的应用程序至关重要。希望本文能帮助您更好地理解Java IO流...
总结来说,Java IO流是处理输入输出的核心工具,无论是在本地文件系统还是在网络环境中,都能提供高效、灵活的文件操作手段。通过组合不同的流类,可以实现复杂的文件读写、上传和下载任务,同时适应文本和非文本...
#### 二、Java IO流的基本概念 Java中的流是一种抽象的概念,用于表示数据传输的过程。根据数据传输的方向不同,可以分为输入流和输出流。其中,输入流是从外部获取数据到程序内部,而输出流则是从程序内部发送数据...
总结起来,Java的IO流提供了丰富的功能来处理文件操作。在复制文本文件时,可以根据实际需求选择合适的流类型,如简单文本处理可选用FileReader和FileWriter,追求效率时可采用BufferedReader和BufferedWriter。理解...
### Java IO 完全总结 #### 一、历史背景 在计算机科学的发展历程中,输入输出(Input/Output,简称IO)系统的设计一直是极具挑战性的任务之一。正如《Thinking in Java》所言:“对语言设计人员来说,创建好的输入/...
节点流是最基本的IO流,它们直接与特定的数据源或目的地连接。这些数据源包括文件、内存块、管道等。节点流提供了直接与硬件交互的途径。 ##### 常用的节点流包括: - **文件流**:`FileInputStream` 和 `...
#### 选择IO流的准则 1. **原始数据格式**:考虑数据的原始格式,例如是文本还是二进制数据。 2. **输入或输出**:确定是读取数据还是写入数据。 3. **是否需要转换流**:如果需要在字节流和字符流之间转换,则需要...