Java文件读写IO/NIO及性能比较详细代码及总结
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Java文件读写IO/NIO及性能比较详细代码及总结 Java文件读写是Java编程中一个非常重要的方面,在各种项目中都需要对文件进行读写操作。Java提供了多种方式来实现文件读写,包括字节读写、字符读取、行读取等。以下是Java文件读写IO/NIO及性能比较详细代码及总结。 一、字节读写(InputStream/OutputStream) 字节读写是Java中最基本的文件读写方式,使用InputStream和OutputStream来实现。InputStream是所有字节输入流的抽象超类,而OutputStream是所有字节输出流的抽象超类。下面是使用InputStream和OutputStream实现文件读写的示例代码: ```java public static void readFileBybyte(String filePath) { File file = new File(filePath); InputStream ins = null; try { ins = new FileInputStream(file); int temp; while ((temp = ins.read()) != -1) { System.out.write(temp); } } catch (Exception e) { e.getStackTrace(); } finally { if (ins != null) { try { ins.close(); } catch (IOException e) { e.getStackTrace(); } } } } ``` 二、字符读取(FileReader/FileWriter) 字符读取是Java中另一种文件读写方式,使用FileReader和FileWriter来实现。FileReader是用来读取字符文件的便捷类,而FileWriter是用来写入字符文件的便捷类。下面是使用FileReader和FileWriter实现文件读写的示例代码: ```java public static void readFileByCharacter(String filePath) { File file = new File(filePath); FileReader reader = null; try { reader = new FileReader(file); int temp; while ((temp = reader.read()) != -1) { if (((char) temp) != '\r') { System.out.print((char) temp); } } } catch (IOException e) { e.getStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } } ``` 三、行读取(BufferedReader/BufferedWriter) 行读取是Java中另一种文件读写方式,使用BufferedReader和BufferedWriter来实现。BufferedReader是用来读取文本文件的便捷类,而BufferedWriter是用来写入文本文件的便捷类。下面是使用BufferedReader和BufferedWriter实现文件读写的示例代码: ```java public static void readFileByLine(String filePath) { File file = new File(filePath); BufferedReader reader = null; try { reader = new BufferedReader(new FileReader(file)); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (IOException e) { e.getStackTrace(); } finally { if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } } ``` 四、NIO(New I/O) NIO是Java 1.4中引入的一种新的I/O处理方式,提供了高性能的I/O处理能力。NIO中使用了Channel和Buffer来实现文件读写。下面是使用NIO实现文件读写的示例代码: ```java public static void readFileByNIO(String filePath) { File file = new File(filePath); FileInputStream fis = null; try { fis = new FileInputStream(file); FileChannel channel = fis.getChannel(); ByteBuffer buffer = ByteBuffer.allocate(1024); int bytesRead = channel.read(buffer); while (bytesRead != -1) { buffer.flip(); while (buffer.hasRemaining()) { System.out.write(buffer.get()); } buffer.clear(); bytesRead = channel.read(buffer); } } catch (IOException e) { e.getStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } ``` 五、性能比较 在实际项目中,我们经常需要对文件进行读写操作,而不同的文件读写方式对性能的影响很大。下面是对不同文件读写方式的性能比较结果: | 文件读写方式 | 读取速度 | 写入速度 | | --- | --- | --- | | 字节读写 |slow | slow | | 字符读取 |medium | medium | | 行读取 |fast | fast | | NIO | fast | fast | 从上面的性能比较结果可以看出,行读取和NIO的性能最好,而字节读写和字符读取的性能较差。 Java文件读写IO/NIO及性能比较详细代码及总结为我们提供了多种文件读写方式和性能比较结果,可以根据实际项目的需求选择合适的文件读写方式以提高性能。
- 粉丝: 3
- 资源: 870
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 多目标点移动机器人改进路径规划算法 送餐机器人,AGV室内机器人仿真路径规划 采用改进A*算法融合模拟 火算法,规划多目标点路径规划 解决路径与障碍物相撞,AGV不斜穿室内区间,采用水平垂直方向移动
- 基于C#语言的上海水电服务端及MQTT服务端设计源码
- 基于carsim与matlab simulink的联合仿真,采用五次多项式实时规划,控制量为节气门开度,制动压力与方向盘转角,弯道道模型
- 动态加载dll控制软件框架,可自主根据接口扩展dll,配置到主框架运行 开发语言:C# + Halcon 1.运动控制,相机采图; 2.实时加载dll工具流程,动态加载窗口; 3.IO控制获取工
- 基于PHP、JavaScript、CSS、HTML、Shell语言的芊雅自助台球系统设计源码
- 基于微信小程序技术的书店门户全功能设计源码
- 表贴式永磁同步电机非线性磁链观测器无感仿真,该仿真在初始位置确定后能够直接起动电机,在低速区不需要高频信号注入,起动电流远远小于if起动,转速和位置在速度上来后精度高,即使在低速也有不错的性能 起动
- 基于Vue框架的新闻资讯与商城前后端分离项目设计源码
- 前端分析-2023071100789
- 基于hyperf框架的全新Vue3+Antdv2.1后台管理系统设计源码
- factoryio工厂流水线仿真程序 使用简单的梯形图与SCL语言编写,通俗易懂,起到抛砖引玉的作用,比较适合有动手能力的入门初学者 软件环境: 1、西门子编程软件:TIA Portal V15(博
- 基于Go语言的secpaver安全策略开发工具源码
- 西门子PCS7自定义单位教程 1.西门子PCS7非标单位的程序编写: 例如:% LEL,%VOL 2.自定义的单位如何立即生效 3.在CFC中通道输入和输出块的单位引脚,直接指定自定义单位,WIN
- 基于TypeScript开发的鸿蒙操作系统录音机设计源码
- 基于Vue框架的慕课在线教育平台设计源码
- 非线性振动,非线性动力学分岔,混沌