IO流的介绍

article/2025/9/15 16:17:23

一:IO流的介绍

        1.IO流属于一种Java技术,主要用于处理数据传输。通过IO与外界进行数据交互,通信等。
        2.IO流适用于文件,图片,音乐,视频等等的传输任务。
        3.通信的目标也存在多种。例如:文件,数据库,网络地址,硬件设备等等。

二:流的种类有哪些?

1.按流的方向分为:输入流和输出流。【硬盘《-----》内存】

2.按流的数据单位不同分为:字节流和字符流。Byte《-----》char

3.按流的功能不同分为:节点流和处理流(装饰流)。

注意:输入流:外部/内部设备向内存的方向进行数据传输。

输出流:内存向外部/内部设备的方向进行数据传输。

节点流:可以直接帮助两个目标进行数据传输,交互。

处理流:提升两个目标进行数据传输,交互的效率。类似于一种工具。

三:字节流

1.InputStream可以通过自身的read()方法将目标处的数据读取出来(目标处 ---> 内存)。

2.和InputStream相反,OutputStream是通过writer()方法将指定的数据写入目标处。

(内存 ---> 目标处)

四:IO流的大致执行流程

1.创建并打开流

2.通过流完成数据传输

3.关闭流(降低系统损耗,不会让系统资源过早使用完)

示例一:单个字符的读取

public static void main(String[] args){try {testMethod1("C:\\caicai.txt");} catch (IOException e) {System.out.println("IO流操作发生异常");e.printStackTrace();}
}//path路径可以是文件路径或者文本路径
private static void testMethod1(String path)throws IOException{//打开流FileInputStream fis=new FileInputStream(path);//len变量表示的是我们即将读取的每一个字符int len=0;//如果fis.read()==-1,读到文件末尾时返回-1,说明目标文件被读取完成了。使用read()方法,一次读取一个字节while ( (len=fis.read())!=-1 ) {//如果不通过char进行类型转换,那打印出来的是字符的位置在编码字典中。进行换换后。打印的才是System.out.print((char)len);}//关闭流fis.close();
}

实例二:将读到的数据装入到数组中,并操作数组,可以提高效率

public static void main(String[] args){try {testMethod2("C:\\caicai.txt");} catch (IOException e) {System.out.println("IO流操作发生异常");e.printStackTrace();}
}private static void testMethod2(String path)throws IOException{//打开流FileInputStream fis=new FileInputStream(path);//通过流读取内容byte[] bt=new byte[1024];//fis.read(),将目标文件的数据暂时读入数组中int len=fis.read(bt);for (int i=0; i<len; i++) {System.out.print((char)bt[i]+" ");}//关闭流fis.close();
}

实例三:将读到的数据装入到数组中(read方法的重载)

public static void main(String[] args){try {testMethod3("C:\\caicai.txt");} catch (IOException e) {System.out.println("IO流操作发生异常");e.printStackTrace();}
}//将读到的数据装入到数组中(read方法的重载)
private static void testMethod3(String path)throws IOException{//打开流FileInputStream fis=new FileInputStream(path);//通过流读取内容byte[] bt=new byte[1024];//从数组bt什么地方开始存读到的数据,偏移量为3int start=3;//希望最多读取多少个(如果是流的末尾,流中没有足够的数据)int maxlen=6;//bt:缓冲区(数组)  start:数组开始读取时的偏移量(索引)//maxlen:最多读取的数据fis.read(bt,start,maxlen);for (int i=start; i<start+maxlen; i++) {System.out.print((char)bt[i]+" ");}//关闭流fis.close();
}


http://chatgpt.dhexx.cn/article/jc78Wa7u.shtml

相关文章

最全最详细的IO流教程

前言 io流用到的地方很多&#xff0c;就比如上传下载&#xff0c;传输&#xff0c;设计模式等…基础打扎实了&#xff0c;才能玩更高端的。 在博主认为真正懂IO流的优秀程序员每次在使用IO流之前都会明确分析如下四点&#xff1a; &#xff08;1&#xff09;明确要操作的数据…

IO流详解.

目录&#xff1a; 一、IO流概述 二、FileInputStream初步 三、FileOutStream的使用 四、文件复制 五、FileReader的使用 六、FileWriter的使用 七、复制普通文本文件 八、带有缓冲区的字符流 九、标准输出流&#xff08;掌握&#xff09; / 写日志 十、File类 一、IO流概述…

IO流 (字节流、字符流)

目录 一、IO流概述 1.1 IO流概述 1.2 FileInputStream读取一个字节 1.3 FileInputStream读取多个字节 1.4 FileInputStream读取全部字节 1.5 FileOutputStream写字节 1.6 字节流复制文件 二、IO流资源释放 2.1 JDK7以前的资源释放 2.2 JDK7以后的资源释放 三、字符流…

面试官:请讲一讲IO流核心模块与基本原理是什么?

前言 一、IO流与系统 IO技术在JDK中算是极其复杂的模块&#xff0c;其复杂的一个关键原因就是IO操作和系统内核的关联性&#xff0c;另外网络编程&#xff0c;文件管理都依赖IO技术&#xff0c;而且都是编程的难点&#xff0c;想要整体理解IO流&#xff0c;先从Linux操作系统…

java IO流

目录 序 一、IO流开篇 1、概念 2、流的分类 3、IO流的作用 4、IO流的使用场景 二、字节流 1、字节流抽象基类 2、字节流写数据 &#xff08;1&#xff09;基本步骤 &#xff08;2&#xff09;三种方式 &#xff08;3&#xff09;两个问题 &#xff08;4&#xff0…

【Java基础-3】吃透Java IO:字节流、字符流、缓冲流

Java IO流 前言1 初识Java IO1.1 IO流分类1.2 案例实操 2 IO流对象2.1 File类2.2 字节流2.3 字符流2.4 序列化 3 IO流方法3.1 字节流方法3.2 字符流方法 4 附加内容4.1 位、字节、字符4.2 IO流效率对比4.3 NIO 前言 有人曾问fastjson的作者&#xff08;阿里技术专家高铁&#x…

2.2.5 操作系统之调度算法(时间片轮转调度算法、优先级调度算法、多级反馈队列调度算法)

文章目录 0.思维导图1.时间片轮转---RR2.优先级调度算法3.多级反馈队列调度算法4.三种算法的对比总结 0.思维导图 1.时间片轮转—RR Round-Robin 时间片为2举例 以时间片为5举例 可能出现的问题&#xff0c;比如与FCFS对比 2.优先级调度算法 非抢占式例子 - 抢占式例子 补充…

进程调度算法详解

进程调度算法 &#x1f3de;️1. 调度指标&#x1f301;2. 先进先出&#xff08;FIFO&#xff09;&#x1f320;3. 最短作业优先&#xff08;SJF&#xff09;&#x1f30c;4. 最短剩余时间优先&#xff08;STCF&#xff09;&#x1f33f;5. 新度量指标&#xff1a;响应时间&…

《操作系统》-调度算法

调度算法 在了解调度算法之前我们先了解一下调度算法的评价指标从这几个方面入手&#xff1a;CPU利用率、系统吞吐量、周转时间、等待时间、响应时间 CPU利用率&#xff1a;指CPU“忙碌”的时间占总时间的比例 由于早期的CPU造价极其昂贵&#xff0c;因此人们会希望让CPU尽可…

【操作系统】-- 时间片轮转调度算法、优先级调度算法、多级反馈队列调度算法

一、时间片轮转调度算法 1、算法思想 公平地、轮流地为各个进程服务&#xff0c;让每个进程在一定时间间隔内都可以得到响应。 2、算法规则 按照各进程到达就绪队列的顺序&#xff0c;轮流让各个进程执行一个时间片&#xff0c;若进程未在一个时间片内执行完&#xff0c;则…

调度算法解析

一、常见的批处理作业调度算法 1.先来先服务调度算法&#xff08;FCFS&#xff09;:就是按照各个作业进入系统的自然次序来调度作业。这种调度算法的优点是实现简单&#xff0c;公平。其缺点是没有考虑到系统中各种资源的综合使用情况&#xff0c;往往使短作业的用户不满意&…

进程和线程调度算法

调度算法是指&#xff1a;根据系统的资源分配策略所规定的资源分配算法&#xff0c;如任务A在执行完后&#xff0c;选择哪个任务来执行&#xff0c;使得某个因素&#xff08;如进程总执行时间&#xff0c;或者磁盘寻道时间等&#xff09;最小。对于不同的系统目标&#xff0c;通…

进程的调度算法

什么时候调度进程 在进程的生命周期中&#xff0c;当进程从一个运行状态到另外一状态变化的时候&#xff0c;其实会触发一次调度。 比如&#xff0c;以下状态的变化都会触发操作系统的调度&#xff1a; 从就绪态->运行态&#xff1a;当进程被创建时&#xff0c;会进入到就…

调度算法的介绍及优缺点

调度算法是根据系统的资源分配策略所规定的资源分配算法。有的调度算法适用于作业调度&#xff0c;有的适用于进程调度&#xff0c;有的两者都适用。先了解几个术语 到达时间、服务时间、开始时间 完成时间、等待时间 周转时间&#xff1a;完成时间-到达时间 带权周转时间&…

操作系统五种调度算法总结(含源码)

今天操作系统实验课我们做了作业调度算法的模拟。网上的调度算法参差不齐&#xff0c;零散杂乱。我在这里进行一个总结&#xff0c;并且分享给大家操作系统的五种常用算法&#xff08;FCFS,SJF,HRRF,HPF,RR&#xff09;并且附上代码和结果图 作业调度 作业调度又称高级调度&am…

磁盘调度算法

1 一次磁盘读/写操作需要的时间 **寻找时间&#xff08;寻道时间&#xff09;**Ts&#xff1a;在读/写数据前&#xff0c;需要将磁头移动到指定磁道所花费的时间。 寻道时间分两步&#xff1a; (1) 启动磁头臂消耗的时间&#xff1a;s。 (2) 移动磁头消耗的时间&#xff1a;假…

经典进程调度算法

介绍进程调度的概念和作用 当 CPU 有一堆任务要处理时&#xff0c;由于其资源有限&#xff0c;这些事情就没法 同时处理。这就需要确定某种规则来决定处理这些任务的顺序&#xff0c;这 就是 “调度” 研究的问题。除了接下来将要说的进程调度&#xff0c;还有 作业调度、内存…

实时调度算法

必要的名词解释 开始截止时间&#xff1a;某个任务必须在某个时间之前开始执行 实时调度算法的分类 根据实时任务性质分类 硬实时调度算法&#xff1a;即任务必须在确定的时间内完成软实时调度算法&#xff1a;即大部分任务必须在确定的时间内完成 根据调度方式分类 关于…

操作系统的常见调度算法

1.先来先服务调度算法&#xff08;FCFS&#xff09; 特性&#xff1a;相对其他调度算法最简单、具有非抢占性、不可剥夺、可用于作业调度和进程调度。 使用特点&#xff1a;用于长作业&#xff0c;不利于短作业&#xff08;对于SJF&#xff08;短作业&#xff09;的高响应比&…

常见的作业调度算法

目录 写在前面先来先服务算法短作业优先算法高响应比优先调度算法 写在前面 评价作业调度算法的优劣&#xff0c;通常看平均周转时间和带权周转时间周转时间 作业完成时间 - 作业到达时间平均周转时间 &#xff08;作业完成时间 - 作业到达时间&#xff09;/ 作业数量带权周…