当前位置: 首页 > news >正文

Java进阶五 -IO流

IO流

File:

  • 表示系统中文件或者文件的路径,只能对文件本身进行操作,不能读写文件里面的内容。

IO流

  • 存储和读取数据的解决方案,用于读写文件中的数据(可以读写文件中的数据或者网络中的数据)

流的分类:

1. 什么是IO流?

  • IO流是指计算机系统中用来存储和读取数据的一种解决方案。
  • I代表Input(输入),O代表Output(输出)。
  • 流(Stream)就像水流一样传输数据,它是一系列连续的数据单元。

2. IO流的作用?

  • IO流主要用于读写数据,无论是本地文件还是网络上的数据。

3. IO流按照流向可以分为哪两种流?

  • 输出流(OutputStream):从程序到文件的方向流动,即将数据从程序发送到外部设备(如磁盘文件)。
  • 输入流(InputStream):从文件到程序的方向流动,即将数据从外部设备(如磁盘文件)读取到程序中。

4. IO流按照操作文件的类型可以分为哪两种流?

  • 字节流(Byte Stream):可以操作所有类型的文件,因为它们是以二进制形式处理数据的。
  • 字符流(Character Stream):只能操作纯文本文件,因为它们是以字符编码的形式处理数据的。

5. 什么是纯文本文件?

  • 纯文本文件是可以用Windows系统自带的记事本打开并且能够读懂的文件。这类文件只包含文本信息,没有特殊的格式或排版指令。

IO的体系结构:

1 FileOutStream

操作本地文件的字节输出流,可以把程序中的数据写到本地文件中。

1 书写:

代码实现:

import java.io.FileOutputStream;
import java.io.IOException;public class shu15_9 {public static void main(String[] args) throws IOException {// 创建对象->创建对象时参数是路径或者FIle都是可以的,// 如果文件不存在那么将会创建一个新的文件,但是要保证父级路径要存在FileOutputStream fos = new FileOutputStream("C:\\Users\\ABC\\IdeaProjects\\My-projects\\myfirstmodule\\src\\itheima\\shu15\\a.txt");// 写入数据->文件存在会覆盖原有的内容(以读取为算)// write方法写入的是整数,但是实际上写到本地文件中的是整数在ASCLL码上对应的字符//一次写一个byte num =99;fos.write(num);//一次写多个byte[] buf = {97, 98, 99,100,101,102,103,104,105};fos.write(buf);//多个数据的部分截取,第一个参数是首索引位置,第二个位置是元素个数fos.write(buf,2,4);// 释放资源->可以解除资源的占用如果不写文件会被程序占用fos.close();}
}

2 换行书写与续写:

import java.io.FileOutputStream;
import java.io.IOException;public class shu15_10 {public static void main(String[] args) throws IOException {FileOutputStream fos = new FileOutputStream("C:\\Users\\ABC\\IdeaProjects\\My-projects\\myfirstmodule\\src\\itheima\\shu15\\a.txt");String str = "anxainhaoshuai";//getBytes的返回值是字节数组fos.write(str.getBytes());//换行书写String str2 = "anxiannihao";String str3 = "\r\n";fos.write(str3.getBytes());fos.write(str2.getBytes());//释放资源fos.close();//续写需要讲构造方法的第二个参数改为trueFileOutputStream fos2 = new FileOutputStream("shu15\\a.txt",true);}
}

2 FileInputStream

1 读取数据

import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;public class shu15_11 {public static void main(String[] args) throws IOException {//创建对象FileInputStream fis = new FileInputStream("C:\\Users\\ABC\\IdeaProjects\\My-projects\\myfirstmodule\\src\\itheima\\shu15\\a.txt");//读取数据int read = fis.read();System.out.println(read);//释放资源fis.close();//文件不存在直接报错,一次只能读取一个字节,读出来的是ASCLL码值(可以使用char转换)读到文件末尾方法返回-1//输出流不存在会创建(父级路径存在)//输入流不存在会报错}
}

循环读取:

import java.io.FileInputStream;
import java.io.IOException;public class shu15_12 {public static void main(String[] args) throws IOException {FileInputStream fis = new FileInputStream("C:\\Users\\ABC\\IdeaProjects\\My-projects\\myfirstmodule\\src\\itheima\\shu15\\a.txt");int b;while (((b = fis.read()) != -1)) {System.out.print((char)b);}fis.close();}
}


http://www.mrgr.cn/news/77718.html

相关文章:

  • 从0到机器视觉工程师(六):配置OpenCV和Qt环境
  • 【源码解析】Java NIO 包中的 ByteBuffer
  • vscode支持ssh远程开发
  • 功能篇:spring事务配置
  • 使用Dinky快速提交Flink operator任务
  • 【Web】软件系统安全赛CachedVisitor——记一次二开工具的经历
  • 【代码随想录day36】【C++复健】1049. 最后一块石头的重量 II ; 494. 目标和 ;474.一和零
  • 大语言模型---LoRA简介;LoRA的优势;LoRA训练步骤;总结
  • 大语言模型---ReLU函数的计算过程及其函数介绍
  • 计算机网络实验
  • 【Oracle实战】文章导读
  • 大语言模型中Softmax函数的计算过程及其参数描述
  • JS文件相关✅
  • GPT系列文章
  • buuoj WEB做题笔记
  • STL中vector实现——简单易懂版
  • Kylin Server V10 下基于Sentinel(哨兵)实现Redis高可用集群
  • 【笔记】Android Gradle Plugin配置文件相关说明-libs.versions.toml
  • win10 mmpose mmdeploy mmaction2
  • 单元测试框架gtest学习(二)—— 认识断言
  • Java开发者必备:23种设计模式全面解析
  • 数据结构及算法--排序篇
  • Idea集成ApiFox插件
  • 【Redis_Day5】String类型
  • udp_socket
  • 网络编程 作业2