用Java编写的一段测量读取和写入字符串所需时间的程序,请高手指教

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用Java编写的一段测量读取和写入字符串所需时间的程序,请高手指教相关的知识,希望对你有一定的参考价值。

用Java编写的一段测量读取和写入字符串所需时间的程序,不知是否正确,请高手指教,小弟才开始学Java,请多多指教!!
package text;

import java.io.*;
import java.util.logging.Level;
import java.util.logging.Logger;

public class Text

public static void main(String[] args)

try

FileInputStream fis = new FileInputStream("1.txt");
byte[] buf=new byte[1000];
long startTime = System.nanoTime();
System.out.println("Now is reading...");
int len=fis.read(buf);
long executiveTime = System.nanoTime() - startTime;
System.out.println(executiveTime+ "ns");
fis.close();
System.out.println("Read is over!");

catch (Exception ex)

ex.printStackTrace();


FileOutputStream fos;
try

fos = new FileOutputStream("2.txt");
System.out.println("Now is writing");
long startTime=System.nanoTime();
fos.write("Russia".getBytes());
long executiveTime=System.nanoTime()-startTime;
System.out.println(executiveTime+ "ns");
fos.close();
System.out.println("Write is over!");

catch (Exception ex)

ex.printStackTrace();



参考技术A import java.io.*;
import java.util.ArrayList;
import java.util.List;

/**
* 指教不敢,我写了一个比较有代表性的面向对象编程的例子,以供你比照。
* @author: lili
* @date : Nov 2, 2009 3:34:57 PM
*/
public class Text

public static void main(String[] args)
String path = "F:\\文件\\";
String readFileName = "1.txt";
String writeFileName = "3.txt";
// 缓冲大小
int size = 1024;
List<byte[]> list = null;
// 总字节数
int countBytes = 0;
try
System.out.println("Now is reading...");
long startTime = System.nanoTime();

list = readByteFromFile(path + readFileName, size);

System.out.println("Read is over!");
System.out.println("读取所需时间:" + (System.nanoTime() - startTime)
+ " ns");
// 统计总字节数
if (list != null)
for (int i = 0; i < list.size(); i++)
byte[] bs = list.get(i);
if (bs != null)
countBytes += bs.length;


System.out.println("读取字节数:" + countBytes);

catch (Exception ex)
ex.printStackTrace();

// 从list 到 byte[]
byte[] bs = new byte[countBytes];
int number = 0;
for (byte[] b : list)
if (b != null)
for (int i = 0; i < b.length; i++)
bs[number++] = b[i];




try
System.out.println("Now is writing...");
long startTime = System.nanoTime();

writeByteToFile(bs, path + writeFileName);

System.out.println("写入 " + bs.length + " 字节所需时间:"
+ (System.nanoTime() - startTime) + " ns");
System.out.println("Write is over!");
catch (Exception ex)
ex.printStackTrace();



/**
* 从文件中读取字节
*
* @param filePath
* 文件绝对路径
* @param bufferSize
* 缓冲大小
* @return
* @throws IOException
*/
public static List<byte[]> readByteFromFile(String filePath, int bufferSize)
throws IOException

List<byte[]> list = new ArrayList<byte[]>();

byte[] bs = null;

FileInputStream fis = new FileInputStream(filePath);
if (bufferSize < 0)
bufferSize = 1024;

bs = new byte[bufferSize];
int count = fis.read(bs);
while (count != -1)
list.add(bs);
count = fis.read(bs);

bs = null;
if (fis != null)
fis.close();

return list;


/**
* 将 byte 写入 文件
*
* @param bs
* @param filePath
* @throws IOException
*/
public static void writeByteToFile(byte[] bs, String filePath)
throws IOException
if (bs == null)
return;

FileOutputStream fos = new FileOutputStream(filePath);
fos.write(bs);
fos.flush();
fos.close();

参考技术B 没错.
要测试的话,应该读取一个大的文件,然后取平均值.IO操作一般有缓存,会影响测试.本回答被提问者采纳
参考技术C 对了,不解释

以上是关于用Java编写的一段测量读取和写入字符串所需时间的程序,请高手指教的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法测量 SQL 查询执行所需的时间而不用 Java 获取结果?

在写入文件时读取文件

c++文件怎么从文件中读出和写入字符串?

如何测量用 PHP 编写的代码的速度? [关闭]

如何测量用 Java 编写的代码的速度? (人工智能算法)

一段时间后,健康应用程序忽略步骤