一、 IO 流的三种分类方式
1. 按流的方向分为:输入流和输出流
2. 按流的数据单位不同分为:字节流和字符流
3. 按流的功能不同分为:节点流和处理流
二、 IO 流的四大抽象类:
字符流: Reader Writer
字节流: InputStream (读数据)
OutputStream (写数据)
三、 InputStream 的基本方法
int read () throws IOException 读取一个字节以整数形式返回,如果返回 -1 已到输入流的末尾
void close () throws IOException 关闭流释放内存资源
long skip ( long n ) throws IOException 跳过 n 个字节不读
四、 OutputStream 的基本方法
void write ( int b ) throws IOException 向输出流写入一个字节数据
void flush () throws IOException 将输出流中缓冲的数据全部写出到目的地
五、 Writer 的基本方法
void write ( int c ) throws IOException 向输出流写入一个字符数据
void write ( String str ) throws IOException 将一个字符串中的字符写入到输出流
void write ( String str , int offset , int length )
将一个字符串从 offset 开始的 length 个字符写入到输出流
void flush () throws IOException
将输出流中缓冲的数据全部写出到目的地
六、 Reader 的基本方法
int read () throws IOException 读取一个字符以整数形式返回,如果返回 -1 已到输入流的末尾
七、节点流类型
八、访问文件之 FileInputStream 和 FileOutputStream 继承基类用于向文件中输入输出字节
九、访问文件之 FileReader 和 FileWriter 继承基类用于向文件中输入输出字符
---- 输出流在构造函数第二个参数可以设置 true 意义为跟在已有文件后进行输入
---- 此类流会抛出 FileNotFoundException 需要对其进行显示捕捉
十、缓冲流:缓冲流要套接在相应的节点流之上,提高了读写的效率。
此处理流的构造方法都得传相对应的基类类型
BufferedReader :提供了 readLine 方法用于高效读取一行字符串
BufferedWriter :提供了 newLine 用于写入一个行分隔符也就是换行
BufferedInputStream 没多大用处
BufferedOutputStream 没多大用处
十一、转换流:主要作用将字节流转换成字符流。用处较大!
转换流在构造时可以指定其编码集合
InputStreamReader 需要和 InputStream 套接
OutputStreamWriter 需要和 OutputStream 套接
例: OutputStreamWriter osw = new OutputStreamWriter ( new FileOutputStream (文件路径);
方法例: osw.getEncoding (); 获得流的编码方式
十二、数据流与字节数组流:
数据流主要为实现可以 存取 Java 原 始数据类型如 long , boolean
数据流是字节流
DataInputStream 需要和 InputStream 套接
DataOutputStream 需要和 OutputStream 套接
DataInputStream 方法: readBoolean () readInt () read…… () ……
readUTF (): 网络传输 常用方法 读一个 Unicode 字符串
DataOutputStream 方法与 DataInputStream 基本对应为写的方法 // 此构造函数等于已可以往一个字节数组里输入内容
ByteArrayOutputStream baos = new ByteArrayOutputStream (); // 此方法为获取一个字节数组方法返回字节数组
baos.toByteArray (); // 此方法获取字节数组占了多少字节
new ByteArrayInputStream (一个字节数组)。 available ()
ByteArrayOutputStream baos =new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
try {
dos.writeDouble(Math.random());
dos.writeBoolean(true);
ByteArrayInputStream bais =new ByteArrayInputStream(baos.toByteArray());
System.out.println(bais.available());
DataInputStream dis = new DataInputStream(bais);
System.out.println(dis.readDouble());
System.out.println(dis.readBoolean());
dos.close();
dis.close();
} catch(IOException e){
e.printStackTrace();
}
十二、 Print 流
Print 流只有输出流无输入流, PrintWriter 和 PrintStream 分别针对字符字节
两个类提供了重载的 Print 和 Println 方法用于多种数据类型的输出
PrintWriter 和 PrintStream 的输出操作不会抛出异常
PrintWriter 和 PrintStream 有自动 flush 功能
----System.setOut( 接收 OutputStream 类 ): 用于设置系统默认输出流
十二、 Object 流
等同于 c# 序列化,用直接将 Object 写入或读出
transient 关键字为不序列化此成员变量
需要序列化的类必须实现 Serializable 接口
主要方法: writeObject ( Object ); readObject ();
读出为 Object 类型需要强转数据类型
import java.io.*;
public class TestObjectIO {
public static void main(String args[]) throws Exception {
T t = new T();
t.k = 8;
FileOutputStream fos = new FileOutputStream("d:/share/java/io/testobjectio.dat");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(t);
oos.flush();
oos.close();
FileInputStream fis = new FileInputStream("d:/share/java/io/testobjectio.dat");
ObjectInputStream ois = new ObjectInputStream(fis);
T tReaded = (T)ois.readObject();
System.out.println(tReaded.i + " " + tReaded.j + " " + tReaded.d + " " + tReaded.k);
}
}
class T implements Serializable
{
int i = 10;
int j = 9;
double d = 2.3;
transient int k = 15;
}
分享到:
相关推荐
4. Java中流的概念细分 流的方向: 输入流:数据源到程序(InputStream、Reader读进来) 输出流:程序到目的地(OutPutStream、Writer写出去) 处理数据单元: 字节流:按照字节读取数据(InputStream、OutputStream)...
讲述java中IO流的基本概念和java中各种IO流的代码范例。
JAVA 中为什么提出流的概念? java 中流的分类, 每种流的 简单例子,可以体系的学习 io流
java IO流 1. 流的概念 2. 输入流和输出流 3. 字符流、字节流 4. 缓冲流 5. 转换流处理流
此代码资源的目标是提供简单易懂的示例代码,帮助读者深入理解Java IO流的概念和使用方法。通过研究这些代码示例,读者将能够了解如何使用不同类型的IO类来进行文件读写、字符流、字节流、网络传输等各种常见的IO...
详细介绍了java SE 中IO流的概念。 并详细介绍了IO 流中的各个对象和用法,是java初学者不可多得的学习资料。
简单的介绍了java中关于输入和输出 流的相关概念,通俗易懂。
一 流的概念 流(Stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程的通信,或读写外围设备、外部文件等。 一个流,必有源端和目的端,它们可以是计算机内存...
java学习之io精辟流总结 ,java中为什么提出流概念?java中的流有什么特点?流都有哪些异常 这里都将一一为你解答。
java IO输入输出流 学习入门,能快速掌握IO流概念,应用。。对于里面的很多概念很清楚讲解笔记。
Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据...
了解java.io包 运用File类对文件或目录的属性进行操作 理解流,理解输入/输出流的概念 运用FileInputStream类和FileOutputStream类读/写字节文件 运用FileReader类和FileWriter类配合BufferedReader类和...
Java程序对数据的操作是通过“流”IO的方式,IO流用来 处理设备之间的输一局传输(上传和下载文件) 2,流 流是一种有顺序有起点和终点的集合(字节),是对数据传输的一种抽象,它就是为了数据传输。 3,流的分类 ...
掌握字节流和字符流读写文件的操作 熟悉如何使用File类访问文件系统 了解字节流和字符流的概念,输入输出概念。
Java输入输出(IO)和流的基本概念_Java教程共2页.pdf.zip
今天带来的是JAVA的IO流中的字符流,Reader和Writer子类流的用法。 基础概念 流是一种抽象概念,它代表了数据的无结构化传递。按照流的方式进行输入输出,数据被当成无结构的字节序或字符序列。从流中取得数据的操作...
流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输 ...Java IO流对象 1.输入字节流InputStreamIO 中输入字节流的继承图可见上图,可以看出:
Java基础类型,容器,并发,IO流,面向对象,Web编程等代码总结。 2、分类文档 JVM虚拟机 JVM特点,结构与执行周期 JVM类加载机制 JVM运行时区数据 JVM执行引擎和垃圾回收 基础语法 理解Java中对象基础Object类 ...
JAVA输入输出流课件,本课件详细讲述了JAVA中输入输出流的概念、分类以及常用的字节流字符流的用法;还讲述了如何使用File类来进行文件和目录操作。