PS:来源忘记,尚未查到,希望见过该代码出现的原址能慷慨告知,先谢谢啦~
apacheAPI,scanner和jdkAPI读取文件的内存以及时间的对比
public class JavaProperty { /** * 创建一个文件 * 写入数据,作为测试文本 */ public void MakeFile() { try { File file = new File("D:\\phone.txt"); if (file.exists()) { file.delete(); } file = new File("D:\\phone.txt"); OutputStream os = new BufferedOutputStream(new FileOutputStream(file)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os)); for (int i = 0; i < 2*1000*1000; i++) { bw.write(bulidPhone()); bw.newLine(); } bw.close();//我错了 os.close(); System.out.println("file create succ"); }catch(Exception e) { System.out.println("io error"); } } /** * 随机产生一个long数字 * @return 字符串格式返回 */ public String bulidPhone() { Long long1 = new Random().nextLong(); return String.valueOf(long1); } /** * 测试 * apacheAPI * 读写性能 */ public void apacheAPITest() { try { long start = System.currentTimeMillis(); File file = new File("D:\\phone.txt"); BufferedReader br = new BufferedReader(new FileReader(file)); while (br.ready()) { br.readLine(); } long end = System.currentTimeMillis(); System.out.println("apacheAPI内存使用:"+(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory())); System.out.println("apacheAPI时间使用:"+(end - start)); }catch(Exception e) { System.out.println("apacheAPI"); } } /** * 测试 * scannerTest * 读写性能 */ public void scannerTest() { try { long start = System.currentTimeMillis(); File file = new File("D:\\phone.txt"); InputStream is = new FileInputStream(file); Scanner scanner = new Scanner(is , "UTF-8"); while (scanner.hasNextLine()) { scanner.nextLine(); } long end = System.currentTimeMillis(); System.out.println("scannerTest内存使用:"+(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory())); System.out.println("scannerTest时间使用:"+(end - start)); }catch(Exception e) { System.out.println("scannerTest"); } } /** * 测试 * jdkAPITest * 读写性能 */ public void jdkAPITest() { try { long start = System.currentTimeMillis(); File file = new File("D:\\phone.txt"); LineIterator li = FileUtils.lineIterator(file); while (li.hasNext()) { li.nextLine(); } long end = System.currentTimeMillis(); System.out.println("jdkAPITest内存使用:"+(Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory())); System.out.println("jdkAPITest时间使用:"+(end - start)); }catch(Exception e) { System.out.println("jdkAPITest"); } } public static void main(String[] args) { JavaProperty jp = new JavaProperty(); jp.MakeFile(); jp.apacheAPITest(); jp.scannerTest(); jp.jdkAPITest(); } }
相关推荐
### Java IO学习基础之读写文本文件 #### 一、Java IO概述 Java IO(Input/Output)是Java中处理输入输出操作的核心包,它主要提供了文件读写、网络通信等基本功能。Java IO操作主要基于流的概念进行,分为字节流...
Java文件读写是Java编程语言中基础且重要的操作,用于处理磁盘上的数据。本文将详细探讨Java如何进行文件读写,并提供相关的示例代码。 首先,读取文件时,Java提供了多种类来实现这一功能。`FileInputStream`是...
以上就是Java进行文件读写操作的基础知识。在实际开发中,还需要根据具体需求选择合适的方法和策略,如处理大文件时可能需要分块读写,或者使用异步I/O来提高性能。通过不断地实践和学习,你将能熟练掌握Java的文件...
而`libjhdf.so.3.2.1`和`jhdf5.dll`分别是Linux和Windows平台的动态链接库,它们实现了与HDF5文件系统交互的底层功能,是Java库在不同操作系统上运行的基础。 `slf4j-api-1.7.5.jar`是Simple Logging Facade for ...
- `BufferedReader` 和 `BufferedWriter` 提供缓冲功能,提高读写性能,可以一次处理更多数据。 - `BufferedInputStream` 和 `BufferedOutputStream` 也提供了缓冲功能,针对字节流进行优化。 - `PrintStream` 和...
这份“Java基础教程PPT”是为初学者设计的,旨在帮助他们掌握Java编程的基础概念和技能。 首先,PPT可能会从Java的历史和特性开始讲解。Java由James Gosling在1995年推出,目标是“一次编写,到处运行”。它的主要...
在Java编程语言中,文件操作是一项基础且重要的任务,涵盖了从简单的文本文件读写到复杂的二进制数据处理。本文将深入探讨Java中各种文件读写的方式,以及如何在读写Word文档时解决可能出现的乱码问题。 首先,Java...
在Java编程语言中,文件的读写操作是日常开发中不可或缺的部分。本示例"读写文件操作demo-java"旨在教你如何使用Java进行文件的读取和写入,这...了解并熟练运用这些基本操作,将为你的Java编程生涯打下坚实的基础。
本指南将深入探讨Java中的文件读写API,包括常用的方法、性能分析以及不同方式之间的对比。以下是对相关知识点的详细说明: 1. **File类**: Java中的`java.io.File`类是文件和目录路径名的抽象表示形式。它提供了...
《Java基础案例教程(第2版)》是一本专为初学者设计的教材,旨在帮助学习者掌握Java语言的基础知识,并通过实践案例加深理解。本教程的课后习题答案包含在"Java基础案例教程(第2版)-课后习题答案.zip"压缩包中,...
Java的I/O流模型允许读写文件、网络通信等,包括字节流(InputStream/OutputStream)和字符流(Reader/Writer),以及缓冲流、转换流和对象流。 7. **多线程** Java内置对多线程的支持,可以通过实现Runnable接口...
Java 视频流读写是Java编程中涉及多媒体处理的一部分,主要目的是为了在应用程序中处理、播放或存储视频数据。Java Media Framework (JMF) 是Java平台上的一个关键组件,用于处理音频、视频和流媒体内容。在这个"JMF...
### Java IO流基础知识点 #### 一、IO流概述 - **定义**:在Java中,IO流(Input/Output Streams)是用来处理输入输出的基本工具。流是一种有序的数据集合,通常涉及从源到目的地的数据传输过程。源可以是文件、...
这份"JAVA基础PPT下载"提供了一套基础的Java学习资源,适用于初学者,旨在引导新手进入Java的世界。以下是对这份教程可能包含的一些核心知识点的详细阐述: 1. **Java概述**:首先会介绍Java的历史背景,它的创始人...
对于初学者来说,理解和掌握Java IO流的使用是学习Java编程的基础,也是进阶到更复杂系统开发的关键一步。 Java的IO流主要分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流处理的是8位的...
"达内java基础pdf"是一份专为初学者设计的学习资源,旨在帮助他们掌握Java编程的基础知识。这份PDF教程可能涵盖了从Java环境搭建到基本语法、类与对象、异常处理、输入输出、集合框架等核心概念。 在Java学习的初期...
"java基础视频方立勋版"是一套专为初学者设计的教程,由知名讲师方立勋讲解,深入浅出地介绍了Java编程的基础知识。本教程涵盖了从安装Java开发环境到编写、编译和运行第一个Java程序的所有步骤,旨在帮助学习者建立...
本文将深入探讨Java中的基本文件操作,包括文件的移动、读写以及文本文件的读写。 首先,让我们从文件操作开始。在Java中,我们可以使用`java.io.File`类来创建、删除、重命名或检查文件是否存在。例如,创建一个新...
"老毕java基础总结"是一个专为初学者设计的学习资源,旨在帮助他们掌握Java编程的基础知识。下面,我们将深入探讨这份文档可能涵盖的关键知识点: 1. **Java环境配置**:学习Java的第一步是安装JDK(Java ...
使用`BufferedReader`和`BufferedWriter`可以提高读写性能,因为它们内部维护了一个缓冲区,减少了对磁盘的直接访问次数。 9. **文件复制** Java提供了简单的文件复制功能,可以使用`Files.copy()`方法来实现。 ...