----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
这几天在学IO流,今天在这里做一个总结
四个基类流对象
输入流:InputStream 和 Reader //都是抽象类,本身不能创建实例
|------->FileInputStream 和 FileReader //用与读取文件的输入流,执行输入
FileInputStream fis=new FileInputStream("FileInputStreamTest.java");//创建字节输入流,读取的文件是FileInputStreamTest.java
byte[] bbuf=new byte[1024]; //创建一个长度为1024的"竹筒",相当于缓存区
int hasRead=0; //用于保存实际读取得字节数
while((hasRead=fis.read(bbuf))!=-1) //重复"取水"过程,读到文件尾为-1
{
System.out.println(new String(bbuf,0,hasRead));//取出"竹筒"中的水滴(字节),将字节数组转换成字符串输出
}
fis.close();
FileReader fr=new FileReader("FileReaderTest.java");//创建字节输入流,读取的文件是FileInputStreamTest.java
char[] cbuf=new char[1024]; //创建一个长度为1024的"竹筒",相当于缓存区
......
输出流:OutputStream和 Writer
|------->FileOutputStream 和 FileWriter //用与写入到文件的输出流,执行输出
FileInputStream fis=new FileInputStream("FileInputStreamTest.java");//创建字节输入流,读取的文件是FileInputStreamTest.java
FileOutputStream fis=new FileOutputStream("FileInputStreamTest_Copy.txt");//创建字节输出流,写入到的文件是FileInputStreamTest_Copy.txt
byte[] bbuf=new byte[1024]; //创建一个长度为1024的"竹筒",相当于缓存区
int hasRead=0; //用于保存实际读取得字节数
while((hasRead=fis.read(bbuf))!=-1) //重复"取水"过程,读到文件尾为-1
{
fos.write(bbuf,0,hasRead); //每读取一次,即写入文件输出流
}
fis.close(); //关闭流资源
字节流:InputStream 和 OutputStream //操作的最小数据单位是8位的字节
字符流:Reader 和 Writer //操作的最小数据单位是16位的字符
我们发现其实IO流是很有规律:
现在付上一个表,将基本的IO流对象列出来:
分类
|
字节输入流
|
字节输出流
|
字符输入流
|
字符输出流
|
抽象基类
|
InputStream
|
OutputStream
|
Reader
|
Writer
|
访问文件
|
FileInputStream
|
FileOutputStream
|
FileReader
|
FileWriter
|
访问数组
|
ByteArrayInputStream
|
ByteArrayOutputStream
|
CharArrayReader
|
CharArrayWriter
|
访问管道
|
PipedInputStream
|
PipedOutputStream
|
PipedReader
|
PipedWriter
|
访问字符串
|
|
|
StringReader
|
StringWriter
|
缓冲流
|
BufferedInputStream
|
BufferedOutputputStream
|
BufferedReader
|
BufferedWriter
|
转换流
|
|
|
InputStreamReader
|
OutputStreamWriter
|
对象流
|
ObjectInputStream
|
ObjectOutputStream
|
|
|
抽象基类
|
FilterInputStream
|
FilterOutputStream
|
FilterReader
|
FilterWriter
|
打印流
|
|
PrintStream
|
|
PrintWriter
|
推回输入流
|
PushbackInputStream
|
|
PushbackReader
|
|
特殊流
|
DataInputStream
|
DataOutputStream
|
|
|
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
分享到:
相关推荐
黑马程序员_毕向东_Java基础视频教程第18天-14-IO流(拷贝文本文件图例).zip
本资料包“Java-IO流高级-例题 & 例题源码 & PPT教学文档(黑马程序员详细版).rar”提供了一个深入学习Java IO流的全面资源,包含实例题目、源代码以及PPT教学材料,适合对Java IO有进阶需求的开发者。 1. **Java ...
黑马程序员_毕向东_Java基础视频教程第18天-09-IO流(文件的续写)
传智播客黑马程序员javaIO流重点总结(必读).doc
在这个“黑马程序员_毕向东_Java基础视频教程第18天-12-IO流(文本文件读取练习)”中,毕向东老师将深入讲解如何使用Java IO流来读取文本文件。Java IO流提供了多种类和方法,使得开发者可以灵活高效地处理输入和输出...
本教程《黑马程序员_毕向东_Java基础视频教程第18天-13-IO流(拷贝文本文件)》专注于讲解如何利用IO流来实现文本文件的复制操作。这个过程涉及到了对文件读取、数据缓冲以及写入等基础知识,对于初学者来说是理解和...
Java IO流是Java编程语言中一个非常重要的概念,它提供了数据传输的能力,使得程序能够读取和写入数据到各种输入/输出设备,如硬盘、内存、网络等。本资源包含的是Java-IO流的基础例题、源码及PPT教学文档,适合初学...
在本教程“黑马程序员_毕向东_Java基础视频教程第18天-11-IO流(文本文件读取方式二)”中,主讲人毕向东将深入讲解如何使用Java有效地读取文本文件,特别是第二种常用的方法。以下是关于Java IO流和文本文件读取的...
- **数据传输:** IO流主要用于实现不同设备间的通信和数据传输。 - **数据操作:** Java通过流的方式对数据进行操作。 **IO流的位置:** - 所有的IO流类都位于`java.io`包中。 **流的分类:** 1. **按数据类型分...
### 黑马程序员入学Java精华总结 #### 一、Java概述与基础知识 1. **何为编程?** - 编程是指通过编写计算机能够理解的指令来解决问题或完成特定任务的过程。这些指令通常被组织成算法,并使用某种编程语言实现。...
"IO-黑马程序员Java学习笔记"这个压缩包包含了关于Java IO的详细教程,可以帮助我们深入理解这个关键领域。下面将根据提供的文件名来解析可能包含的知识点。 1. **IO.md**: 这个文件很可能是Markdown格式的学习...
Java的IO体系主要包括字节流(InputStream/OutputStream)和字符流(Reader/Writer),它们用于处理文件读写、网络通信等操作。 #### 18. 集合体系 Java集合框架主要包括List、Set、Map三种集合类型,以及它们的...
5. **IO/NIO/BIO**:输入输出流的使用,非阻塞I/O模型(NIO)和新特性(AIO),以及在网络通信中的应用。 6. **反射**:理解类、接口、构造器、方法的反射操作,以及动态代理的应用。 7. **设计模式**:常见的设计...
6. **IO流** - 文件操作:File类的使用,以及FileReader/Writer、FileInputStream/FileOutputStream的读写操作。 - 流的分类:字节流和字符流,输入流和输出流。 - 缓冲流:BufferedReader和BufferedWriter的性能...
7. **IO流**:教授输入输出流的使用,包括文件读写、对象序列化和反序列化等。 8. **集合框架**:介绍ArrayList、LinkedList、HashSet、HashMap等容器的使用,以及泛型的概念。 9. **多线程**:讲解如何创建和管理...
- 键盘输入通常有三种方式:命令行参数`String[] args`、`BufferedReader`通过IO流读取、`Scanner`类从`System.in`获取输入。`Scanner`的使用步骤包括导入包,创建对象,然后调用相应方法接收数据。 5. **switch...
Java的IO流系统支持数据的输入和输出,包括字符流和字节流,以及缓冲区、转换流和对象序列化等。 16. **多线程**: Java内置了对多线程的支持,通过Thread类或实现Runnable接口可以创建并管理多个执行线程。 17....
这其中包括了对Java集合框架的理解(List、Set、Map接口及其实现类)、异常处理、多线程编程、IO流、反射、设计模式等进阶主题。 黑马程序员面试技巧则提供了面试策略和技巧,如如何清晰地表达思路,怎样在短时间内...
### 黑马程序员入学Java知识(精华总结) #### 一、Java概述与基础知识 ##### 1、何为编程? 编程是指使用计算机语言来编写指令,这些指令被计算机执行以完成特定任务的过程。通过编程,我们可以控制计算机的行为...