I/O流-file实例

I/O流是Java中处理数据传输的方式,包括输入输出操作,如读写文件和网络通信。流分为字节流和字符流,用于程序与外部设备交互。文章通过一个示例展示了如何使用FileInputStream和FileOutputStream进行文件复制,强调了打开流、操作流和关闭流的顺序,以及流的读写特性。
摘要由CSDN通过智能技术生成

I/O流的定义

输入输出(input/output,I/O)技术用于处理设备之间的数据传输,用于程序与外部设备或其他计算机进行数据交换的过程,比如:读/写文件、网络通信等。

对于程序而言,将外部数据(磁盘、光盘等存储设备的数据)读到程序(内存)中成为输入(input),将程序(内存)数据输出到光盘、磁盘等存储设备中成为输出(output)

流(stream),是在Java程序中,对于数据的输入输出操作以“流”的方式进行。

I/O流按照操作数据单位不同分为字节流字符流。其中字符流只能处理纯文本文件,而字节流是万能流。

Java的输入输出流体系提供就几十个类,下面为常用的流:
在这里插入图片描述

所以I/O流,可以想象成用自来水的输送,首先自来水厂准备好水源[1],打开管道将水输进架设好的管道[2],被运输的水便会顺着管道输送到用户家里[3],在水储蓄满了后,就关闭管道[4],防止水的漫出。

这就可以总结出I/O流使用的四个步骤

1. 确定流
2. 打开流
3. 操作流
4. 关闭流

file类实例

运用FileInputStreamFileOutputStream来进行文件I/O操作

//实现文件的复制

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class copeFile {
        public static void main(String[] args){
        	//确定流
                String src = "address";//address为你所选择的输入文件实际地址
                String dest = "toaddress";//toaddress为输出文件实际地址
                copeFile(src,dest,1024);
        }
        public static void copeFile(String src,String dest,int map){
        		//打开流
                FileInputStream fit = null;
                FileOutputStream fot = null;
                try {
                        fit = new FileInputStream(src);
                        fot = new FileOutputStream(dest);
                 //操作流
                        byte[] bytes = new byte[map];//用bytes数组来进行数据缓存
                        while(fit.read(bytes) != -1){//“-1”时表示文件读取完毕
                                fot.write(bytes);
                                fot.flush();
                        }
                } catch (Exception e) {
                        e.printStackTrace();
                }finally{
                //关闭流
                        try{
                                fot.close();
                        }catch (Exception e){
                                e.printStackTrace();
                        }
                        try{
                                fit.close();
                        }catch (Exception e){
                                e.printStackTrace();
                        }
                }
        }
}

注意:

  • 流打开顺序遵循:先开后关,后开先关

  • 顺序存取:按文本顺序读/写字节,不能随机访问中间的数据。(RandomAccessFile除外)

  • 只读或只写:每个流只能是输入流或输出流的一种,不能同时具备两个功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值