java中IO流
2022/1/27 20:34:21
本文主要是介绍java中IO流,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JAVA io流
一、IO流原理及其相关概念
- I/O是Input/Output的缩写,IO技术用于处理设备之间的数据传输,在java程序中对于数据的输入/输出操作以“流(stream)”的方式进行
- java.io包下提供了分钟“流”类和接口,用于获取不同种类的数据,并通过标准的方法输入或输出数据(输入和输出是相对(内存)的概念,我们站位在程序/内存的角度)
二、IO流的分类
- 按操作数据单位不同分为:字节流(8bit)、字符流(16bit)
- 非文本数据一般使用字节流,文本数据使用字符流(一个字符char类型占2字节)
- 按数据流的流向不同分为:输入流、输出流
- 按流的角色不同分为:节点流、处理流(通俗的讲:我们要洗澡,我们要将一个池子的水放到浴缸里面,我们可以直接在两者之间建一根水管,让水流进去,这就是字节流,如果我们要加快水流的速度,对水管进行一系列的改造,这个就是处理流6)
抽象基类 | 字节流 | 字符流 |
---|---|---|
输入流 | InputStream(字节输入 流) | Reader(字符输入流) |
输出流 | OutputStream(字节输出流) | Writer(字节输出流) |
- 抽象类不能实例化,不一定有抽象方法
- JAVA中IO流涉及的类非常多,但其多而规则,所有的类都是从以上的4个抽象基类派生的
- 由这4个抽象基类派生的子类名称都是以其父类作为子类的后缀名
抽象基类 | 文件流(节点流) | 缓冲流(处理流的一种) |
---|---|---|
InputStream | FileInputStream | BufferedInputStream |
OutputStream | FileOutputStream | BufferedOutputStream |
Writer | FileWriter | BufferedWriter |
Reader | FileReader | BufferedReader |
- JVM有多种垃圾回收算法,但是对于物理连接比如:数据库连接、输入输出流、Socket连接无能为力,需要手动关闭。
package priv.stream.java; import java.io.File; import java.io.FileReader; import java.io.IOException; public class FileReaderWriterTest { public static void main(String[] args) throws IOException { // 1.实例化File类的对象,指明要操作的文件 File file = new File("E:\\原D盘文件\\code\\java\\基础语法\\src\\priv\\stream\\java\\hello.txt"); System.out.println(file.getAbsoluteFile()); //2.提供具体的流 FileReader fr = new FileReader(file); //3.数据的读入 int data = fr.read(); while (data != -1) { System.out.print((char)data); data = fr.read(); } //3.数据的读入(简化) int data; while(( data = fr.read() )!=-1) { System.out.print((char)data); } fr.close(); } }
上面的异常是通过抛出来解决,下面是通过try-catch-finally来解决(快捷键Alt+Ctrl+T)
package priv.stream.java; import java.io.File; import java.io.FileReader; import java.io.IOException; public class FileReaderWriterTest { public static void main(String[] args) { FileReader fr = null; try { File file = new File("E:\\原D盘文件\\code\\java\\基础语法\\src\\priv\\stream\\java\\hello.txt"); System.out.println(file.getAbsoluteFile()); fr = new FileReader(file); int data ; while ((data = fr.read())!=-1) { System.out.print((char)data); } } catch (IOException e) { e.printStackTrace(); } finally { } try { if(fr!=null) fr.close(); } catch (IOException e) { e.printStackTrace(); } } }
说明:读入的文件一定要存在,否则就会报FileNotFoundException
这篇关于java中IO流的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-04TiDB 资源管控的对撞测试以及最佳实践架构
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现