Java——基本的io流

基本概念

节点流与处理流

按照流是否直接与特定的地方(如磁盘、内存、设备等)
相连,分为节点流和处理流两类。

  1. 节点流:可以从或向一个特定的地方(节点)读写数据。
  2. 处理流:是对一个已存在的流的连接和封装,通过所封 装的流的功能调用实现数据读写。

处理流的构造方法总是要带一个其他的流对象做参数。
个流对象经过其他流的多次包装,称为流的链接。

通常节点流也称为低级流
通常处理流也称为高级流或过滤流

IS和OS常用方法

  1. InputStream是所有字节输入流的父类, 其定义了基础的读取方法,常用的方法如下:
    int read0
    读取一个字节
    以int形式返回该int值的”低八位”有效,若返回值为-1则表示EOF
    int read(byte[] d)
    尝试最多读取给定数组的length个字节并存入该数组, 返回值为实际读取到的字节量。
  2. OutputStream是所有字节输出流的父类,其定义了基础的写出方法,常用的方法如下:
    void write(int d)
    写出一个字节,写的是给定的int的”低八位”
    void write(byte[] d)
    将给定的字节数组中的所有字节全部写出

java I0(input, output)

输入与输出

I0是我们的程序与外界交换数据的方式。
java提供了一种统一的标准的方式与外界交换数据

java将流按照功能划分为读和写,并用不同的方向来表示
其中输入流(外界到程序的方向)用于读取数据
输出流用于写出数据

java将流划分为两大类: 节点流,处理流

节点流:

也称为低级流,是实际链接程序与数据源的"管道",负责实际搬运数据。读写一定是建立在节点流的基础上进行的。

处理流:

也称为高级流,不能独立存在,必须链接在其他流上,目的是当数据流经当前流时对这些数据做某些处理,这样可以简化我们对数据的操作

  • 实际应用中,我们是链接若干高级流,并最终链接低级流,通过低级流读写数据,通过高级流对读写的数据进行某些加工处理,完成-一个复杂的读写操作。这个过程称为"流链接"。这也是学习I0的精髓所在。|

文件流

文件流是一对低级流,用于读写文件。就功能而言,它们与RandomAccessFile致。但是底层的读写方式有本质区别。
RAF是基于指针进行读写的,可任意读写文件指定位置的数据。可以做到对文件部分数据的编辑操作。

流是顺序读写方式,所以不能做到任意读写指定位置数据,对此也无法做到对文件数据进行编辑的操作。但是配合高级流,可以更轻松的读写数据。

package io;

import java.io.FileOutputStream;
/**
 * 写文件
 * 使用文件流向文件写出字节
 * FileOutputStream常见构造方法:
 * FileOutputStream(String path)
 * FileOutputStream(File file)
 * 以上两种方式创建时,默认为覆盖写操作,即:若创建时该
 * 文件已存在,会先将该文件所有数据清除。然后将通过
 * 当前流写出的内容作为该文件数据。
 * 
 *  FileOutputStream(String path,boolean append)
 * 	FileOutputStream(File file,boolean append)
 * 追加写模式,即:若指定文件存在,那么数据全保留,通过该流写出的
 * 数据会加到文本末尾
 * 
 * @author 13651
 *
 */
public class FosDemo{
	public static void main(String[] args) throws Throwable {
		FileOutputStream fos = new FileOutputStream("fos.txt",true);
		String line = "一起学猫叫";
		//转换为二进制
		byte[] data = line.getBytes("UTF-8");
		fos.write(data);
		System.out.println("写出完毕!");
		fos.close();
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值