Java输入输出流

news/2024/11/24 7:37:49/

目录

一、数据流概念

1.输入输出的概念​

2.流的概念

3.流的操作

二、常用的流分类

三、文件输入输出流

1.FileReader和FileWriter

2.FileInputStream和FileOutStream

四、复制文件


一、数据流概念

1.输入输出的概念​

        输入输出技术用于处理设备之间的数据传输,指的是程序和外部设备或者其他计算机进行数据交换的过程,比如读/写文件、网络通信等。将外部数据读取到内存中称为输入,将内存数据输出到磁盘、光盘中称为输出。

2.流的概念

        Java程序中,对于数据的输出输入操作以“流”的方式进行。java.io包下提供了各种“流”类接口,用于获取不同种类的数据,并通过标准的方法输入或输出数据。

3.流的操作

import java.io.FileInputStream;
import java.io.IOException;public class FileInputStreamTest {public static void main(String[] args) {// 确定源String path = "hello.txt";FileInputStream fis = null;try {// 打开流fis = new FileInputStream(path);// 操作流int res = 0;while ((res = fis.read()) != -1) {System.out.println((char) res);// 转换类型为char}} catch (IOException e) {e.printStackTrace();} finally {try {// 关闭流fis.close();} catch (IOException e) {e.printStackTrace();}}}
}

二、常用的流分类

分类字节输入流字节输出流字符输入流字符输出流
抽象父类InputStreamOutputStreamReaderWriter
访问文件FileInputStreamFileOutStreamFileReader    FileWriter
访问数值ByteArrayInputStreamByteArrayOutStreamCharArrayReaderCharArrayWriter
访问管道PipedInputStream    PipedOutStream    PipedReader    PipedWriter
访问字符串StringReader    StringWriter
缓冲流BufferedInputStream    BufferedOutputStream    BufferedReader    BufferedWriter
转换流InputStreamReader    OutputStreamWriter
对象流ObjectInputStream    ObjectOutputStream          
装饰流FilterInputStream    FilterOutputStream    FilterReader    FilterWriter
打印流PrintStream         PrintWriter
数据过滤流DataInputStream    DataOutputStream

        InputStream和Reader是所有输入流的基类,OutputStream和Writer是所有输出六的基类。InputStream和OutputStream是字节流的抽象父类,以字节为单位进行I/O操作,Reader和Writer是字符流的抽象父类,以字符为单位进行I/O操作。

三、文件输入输出流

1.FileReader和FileWriter

        FileReader和FileWriter分别继承自Reader和Writer,以字符为的那位广泛用于文件操作的节点流。FileReader类用于从文本读数据,每次度一个字符或者一个字符数组;FileWriter类用于从文本文件写数据,每次写入一个字符、一个数组或者一个字符串。

2.FileInputStream和FileOutStream

        FileInputStream和FileOutStream分别继承自InputStream和FileOutStream,以字节为单位广泛用于文件操作的节点流。FileInputStream类用于从文件读取数据,FileOutStream类用于将数据写入文件

四、复制文件

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class Copy {public static void main(String[] args) {FileInputStream fis = null;FileOutputStream fos = null;try {// 打开流fis = new FileInputStream("hello.txt");//路径fos = new FileOutputStream("hello1.txt");byte[] bytes = new byte[10];// 操作流while (fis.read(bytes) != -1) {fos.write(bytes);fos.flush();}System.out.println("复制完成!");} catch (Exception e) {e.printStackTrace();} finally {try {if (null != fos)// 关闭流fos.close();} catch (IOException e) {e.printStackTrace();}try {if (null != fis)fis.close();} catch (IOException e) {e.printStackTrace();}}}
}


http://www.ppmy.cn/news/99451.html

相关文章

【数据库复习】第六章 关系数据理论 1

关系模式的设计 按照一定的原则从数量众多而又相互关联的数据中,构造出一组既能较好地反映现实世界,而又有良好的操作性能的关系模式 ●冗余度高 ●修改困难 ●插入问题 ●删除问题 ★产生问题的原因 属性间约束关系(即数据间的依赖关系&…

dpdk ip分片报文重组处理

dpdk ip报文重组及分片API及处理逻辑介绍 DPDK的分片和重组实现零拷贝,详细介绍可以参阅DPDK分片与重组用户手则 相关数据结构 /** Fragmented packet to reassemble.* First two entries in the frags[] array are for the last and first fragments.*/ struct …

Doris----Rollup表分析及案例实现

ROLLUP 在多维分析中是“上卷”的意思,即将数据按某种指定的粒度进行进一步聚合。 之前的聚合模型: 用户id数据插入时间城市年龄性别最后一次访问的时间该用户的总消费额该用户的最大停留时长该用户的最小停留时长100002017/10/2北京1002017/10/02 08:00:00651521…

GPT-4发布!ChatGPT大升级!太太太太强了!

ChatGPT狂飙160天,世界已经不是之前的样子。 我新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 一觉醒来,万众期待的GPT-4,它来了! OpenAI老板Sam Altman直接开门见山地介绍说&#xff1a…

问chartgpt:python的编程规则?

一.问题描述 python的编程规则? 二.ChatGPT的解决方法【实测可行】 (一)Python编程有一些基本规则需要遵守,这些规则包括: 缩进:Python使用缩进来表示代码块,因此请确保使用一致的缩进方式&a…

RT-Thread 学习笔记:memheap 死机问题的分析与解决

验证环境 NUCLEO-L476RG 开发板,板载 STM32L476RGT6(96K SARM1 32K SRAM2) Win10 64 位 Keil MDK 5.36 RT-Thread 5.0.1 版本(2023-05-28 master 主线) bsp : bsp\stm32\stm32l476-st-nucleo 功能描述 最近在研…

【深入浅出Spring Security(一)】Spring Security的整体架构

Spring Security的整体架构 一、整体架构认证(Authentication)AuthenticationManagerAuthentication登录后的数据保存(SecurityContextHolder) 授权(Authorization)ConfigAttribute 二、总结 这篇博客所述主…

CISCN 2023 初赛 pwn——Shellwego 题解

这是一个用go语言写的elf程序,没有PIE。这也是本蒟蒻第一次解go pwn题,故在此记录以便参考。 而且,这还是一个全部符号表被抠的go elf,直接面对一堆不知名的函数实在有些应付不来,因此在比赛时委托逆向的队友把符号表…