流式I/O和文件

本文详细介绍了Java中的输入输出流概念及常用方法,包括InputStream和OutputStream的基本操作、缓冲流的使用、数据流的读写、管道流的应用、字符流与字节流之间的转换等。此外还介绍了文件操作类File的使用方法以及随机访问文件的特点。
摘要由CSDN通过智能技术生成

1. 流和基础知识
    1) 一个流是字节的源或目的
    2) 二种基本的流是:输入流和输出流
2. InputStream方法
    1) 三个基本的read()方法
       a. int read(): 从流里读出的一个字节或者-1;
       b. int read(byte[]):将数据读入到字节数组中,并返回所读的字节数;
       c. int read(byte[], int , int):两个int参数指定了所要填入的数组的子范围。
    2) 其它方法
       a. void close(): 关闭流,如使用过滤器流,关闭栈顶部的流,会关闭其余的流。
       b. int available(): 返回可从流中读取的字节数。
       c. skip(long): 丢弃了流中指定数目的字符。
 OutputStream方法
    1) 三个基本的read()方法
       a. void write():
       b. void write(byte[]):
       c. void write(byte[], int , int):
       写输出流。
    2) 其它方法
       a. void close(): 关闭流,如使用过滤器流,关闭栈顶部的流,会关闭其余的流。
       b. int flush(): 允许你强制执行写操作。
3. FileInputStream和FileOutputStream
    1) 结点流,使用磁盘文件。
    2) 要构造一个FileInputStream, 所关联的文件必须存在而且是可读的。
    3) 要构造一个FileOutputStream而输出文件已经存在,则它将被覆盖。
       FileInputStream infile = new FileInputStream("myfile.dat");
       FIleOutputStream outfile = new FileOutputStream("results.dat");
4. BufferInputStream和BufferOutputStream
       过滤器流,可以提高I/O操作的效率
5. DataInputStream和DataOutStream
       通过流来读写Java基本类,注意DataInputStream和DataOutputStream的方法是成对的。
6. PipedInputStream和PipedOutputStream
       用来在线程间通信.
7. Reader和Writer
       1) Java技术使用Unicode来表示字符串和字符,而且提供16位版本的流,以便用类似的方法处理字符。
    2) InputStreamReader和OutputStreamWriter作为字节流与字符流中的接口。
    3) 如果构造了一个连接到流的Reader和Writer,转换规则会在使用缺省平台所定义的字节编码和Unicode之间切换。
8. 文件
    1) 一个文件对象可以代表文件或者目录;
    2) File类处理所有磁盘操作;
    3) 构造方法:
       a. File(File parent, String child):
       b. File(String pathName);
       c. File(String parent, String child);
       d. File(URI uri)
    4) 目录分隔
       File.separator
9. 随机存取文件
    1) 实现了二个接口:DataInput和DataOutput;
    2) 只要文件能打开就能读写;
    3) 通过文件指针能读写文件指定位置;
    4) 可以访问在DataInputStream和DataOutputStream中所有的read()和write()操作;
    5) 在文件中移动方法:
       a. long getFilePointer(): 返回文件指针的当前位置。
       b. void seek(long pos): 设置文件指针到给定的绝对位置。
       c. long length(): 返回文件的长度。
10. 串行化
    1) 将一个对象存放到永久存储器上称为保持;
    2) 只有对象的数据被串行化;
    3) 标记为transient关键字的数据不被串行化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值