`

java基础之读写性能

阅读更多

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概述 Java IO(Input/Output)是Java中处理输入输出操作的核心包,它主要提供了文件读写、网络通信等基本功能。Java IO操作主要基于流的概念进行,分为字节流...

    Java文件读写.pdf

    Java文件读写是Java编程语言中基础且重要的操作,用于处理磁盘上的数据。本文将详细探讨Java如何进行文件读写,并提供相关的示例代码。 首先,读取文件时,Java提供了多种类来实现这一功能。`FileInputStream`是...

    java文件读写操作

    以上就是Java进行文件读写操作的基础知识。在实际开发中,还需要根据具体需求选择合适的方法和策略,如处理大文件时可能需要分块读写,或者使用异步I/O来提高性能。通过不断地实践和学习,你将能熟练掌握Java的文件...

    java读写hdf5格式文件需要使用的库

    而`libjhdf.so.3.2.1`和`jhdf5.dll`分别是Linux和Windows平台的动态链接库,它们实现了与HDF5文件系统交互的底层功能,是Java库在不同操作系统上运行的基础。 `slf4j-api-1.7.5.jar`是Simple Logging Facade for ...

    java IO流读写

    - `BufferedReader` 和 `BufferedWriter` 提供缓冲功能,提高读写性能,可以一次处理更多数据。 - `BufferedInputStream` 和 `BufferedOutputStream` 也提供了缓冲功能,针对字节流进行优化。 - `PrintStream` 和...

    Java基础教程PPT

    这份“Java基础教程PPT”是为初学者设计的,旨在帮助他们掌握Java编程的基础概念和技能。 首先,PPT可能会从Java的历史和特性开始讲解。Java由James Gosling在1995年推出,目标是“一次编写,到处运行”。它的主要...

    java操作文件读写

    在Java编程语言中,文件操作是一项基础且重要的任务,涵盖了从简单的文本文件读写到复杂的二进制数据处理。本文将深入探讨Java中各种文件读写的方式,以及如何在读写Word文档时解决可能出现的乱码问题。 首先,Java...

    读写文件操作demo-java

    在Java编程语言中,文件的读写操作是日常开发中不可或缺的部分。本示例"读写文件操作demo-java"旨在教你如何使用Java进行文件的读取和写入,这...了解并熟练运用这些基本操作,将为你的Java编程生涯打下坚实的基础。

    Java读写文件API的用法指南,性能分析与对比。

    本指南将深入探讨Java中的文件读写API,包括常用的方法、性能分析以及不同方式之间的对比。以下是对相关知识点的详细说明: 1. **File类**: Java中的`java.io.File`类是文件和目录路径名的抽象表示形式。它提供了...

    java课件 java基础教程

    Java的I/O流模型允许读写文件、网络通信等,包括字节流(InputStream/OutputStream)和字符流(Reader/Writer),以及缓冲流、转换流和对象流。 7. **多线程** Java内置对多线程的支持,可以通过实现Runnable接口...

    java 视频流读写

    Java 视频流读写是Java编程中涉及多媒体处理的一部分,主要目的是为了在应用程序中处理、播放或存储视频数据。Java Media Framework (JMF) 是Java平台上的一个关键组件,用于处理音频、视频和流媒体内容。在这个"JMF...

    Java基础案例教程(第2版)-课后习题答案.zip

    《Java基础案例教程(第2版)》是一本专为初学者设计的教材,旨在帮助学习者掌握Java语言的基础知识,并通过实践案例加深理解。本教程的课后习题答案包含在"Java基础案例教程(第2版)-课后习题答案.zip"压缩包中,...

    java基础之IO流

    ### Java IO流基础知识点 #### 一、IO流概述 - **定义**:在Java中,IO流(Input/Output Streams)是用来处理输入输出的基本工具。流是一种有序的数据集合,通常涉及从源到目的地的数据传输过程。源可以是文件、...

    JAVA基础PPT下载

    这份"JAVA基础PPT下载"提供了一套基础的Java学习资源,适用于初学者,旨在引导新手进入Java的世界。以下是对这份教程可能包含的一些核心知识点的详细阐述: 1. **Java概述**:首先会介绍Java的历史背景,它的创始人...

    java的io流文件读写

    对于初学者来说,理解和掌握Java IO流的使用是学习Java编程的基础,也是进阶到更复杂系统开发的关键一步。 Java的IO流主要分为两大类:字节流(Byte Stream)和字符流(Character Stream)。字节流处理的是8位的...

    达内java基础pdf

    "达内java基础pdf"是一份专为初学者设计的学习资源,旨在帮助他们掌握Java编程的基础知识。这份PDF教程可能涵盖了从Java环境搭建到基本语法、类与对象、异常处理、输入输出、集合框架等核心概念。 在Java学习的初期...

    java基础视频方立勋版

    "java基础视频方立勋版"是一套专为初学者设计的教程,由知名讲师方立勋讲解,深入浅出地介绍了Java编程的基础知识。本教程涵盖了从安装Java开发环境到编写、编译和运行第一个Java程序的所有步骤,旨在帮助学习者建立...

    Java IO 基础操作(文件读写和移动)

    本文将深入探讨Java中的基本文件操作,包括文件的移动、读写以及文本文件的读写。 首先,让我们从文件操作开始。在Java中,我们可以使用`java.io.File`类来创建、删除、重命名或检查文件是否存在。例如,创建一个新...

    老毕java基础总结

    "老毕java基础总结"是一个专为初学者设计的学习资源,旨在帮助他们掌握Java编程的基础知识。下面,我们将深入探讨这份文档可能涵盖的关键知识点: 1. **Java环境配置**:学习Java的第一步是安装JDK(Java ...

    Java读写文本文件的示例代码.7z

    使用`BufferedReader`和`BufferedWriter`可以提高读写性能,因为它们内部维护了一个缓冲区,减少了对磁盘的直接访问次数。 9. **文件复制** Java提供了简单的文件复制功能,可以使用`Files.copy()`方法来实现。 ...

Global site tag (gtag.js) - Google Analytics