读文件&计算方法执行时间的实例
2012-07-24 21:55
393 查看
学习了几个关于java读写文件和计算方法执行时间的程序。
一、关于读文件的实例
第一个是读一个指定目录中.txt文件的程序:
还有一个程序是:写一个Java类,读取自己,并按照原来的格式输出到控制台。
错误: 找不到或无法加载主类 TestFile
程序运行错误:
?检查了jdk与java的版本匹配问题,也修改了环境变量,但是输出还是有错误。。。
二、计算方法执行时间
测试代码的运行时间,网上的总结有两种:
1、以毫秒为单位计算
2、以纳秒为单位计算
完成读文件并计算每一个方法执行的平均时间的步骤分析:
(1~4均使用数组实现)
1、计算文件中出现的总方法数
先记录第一个出现的方法,再分析第二个,若与第一个方法相同,跳过,若不同则记录下来,同理再分析第三个方法,将其与第一、二个比较,若与其中一个相同则跳过,反之则记录下来,依此类推,分析第n个方法,将其与之前的n-1个比较,若有相同的则跳过,若比较到第n-1个仍不相同,则记录下来。
2、记录每个方法每次出现的时间
数组数据类型为浮点型
3、记录每个方法出现的次数
数组初始化为0
数组数据类型为整型
一个方法出现一次,则其记录次数的数组的相应下标所对应的整数加1
4、求和计算每个方法出现的总时间
n个数组分别求和,存入一个新的数组中
5、计算每个方法执行的平均时间
平均时间=总时间/总次数
读文件操作一共执行两次,第一次是计算出文件中出现的总方法数,第二次是计算出每个方法执行的平均时间。
一、关于读文件的实例
第一个是读一个指定目录中.txt文件的程序:
import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.InputStreamReader; //import java.io.*; public class FileReaderSample { public static void main(String[] args) { read("….txt"); } public static void read(String file) { //创建一个File类,并判断一下指定文件是否存在 String s = null; //检验内容是否为空 StringBuffer sb = new StringBuffer(); File f = new File(file); if (f.exists()) { System.out.println("该文件存在"); try { BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(f))); /*创建一个FileInputStream类,从文件系统中的某个文件中获取输入字节。 * 把读到的字节流交给InputStreamReader对象来处理。*/ while ((s = br.readLine()) != null) { /*用BufferedReader类来处理读到的字符集合 * readLine()方法可以读取当前的一行字符 * 把这些字符串都放进一个StringBuffer中*/ sb.append(s); } //字符串"null"追加到此字符序列 System.out.println(sb); br.close();} catch (Exception e) { e.printStackTrace();} //打印错误 } else { System.out.println("该文件不存在!"); } } }
还有一个程序是:写一个Java类,读取自己,并按照原来的格式输出到控制台。
import java.io.*; public class TestFile{ public static void main(String args[]) throws IOException { /*throws IOException表示此方法有抛出IOException异常的可能性。 *只要此方法的某些代码可能抛出异常,就必须显式处理,或者(try...catch),或者抛出*/ File f = new File("C:\Program Files\Java\TestFile.java"); LineNumberReader lineNumberReader = new LineNumberReader(new FileReader(f)); StringBuffer sb = new StringBuffer(); //Constructs a string buffer with no characters in it //and an initial capacity of 16 characters String lineStr = lineNumberReader.readLine(); //读第一行 while (lineStr != null) { sb.append(lineStr).append("\n"); //每读一行,加一个回车 lineStr=lineNumberReader.readLine(); } lineNumberReader.close(); System.out.println(sb.toString()); } }
错误: 找不到或无法加载主类 TestFile
程序运行错误:
?检查了jdk与java的版本匹配问题,也修改了环境变量,但是输出还是有错误。。。
二、计算方法执行时间
测试代码的运行时间,网上的总结有两种:
1、以毫秒为单位计算
long startTime=System.currentTimeMillis(); //获取开始时间 doSomeThing(); //测试的代码段 long endTime=System.currentTimeMillis(); //获取结束时间 System.out.println("程序运行时间: "+(end-start)+"ms");
2、以纳秒为单位计算
long startTime=System.nanoTime(); //获取开始时间 doSomeThing(); //测试的代码段 long endTime=System.nanoTime(); //获取结束时间 System.out.println("程序运行时间: "+(end-start)+"ns");
public class StopWatch { public StopWatch() { reset(); } public void start() { if (isRunning) return; isRunning = true; startTime = System.currentTimeMillis(); //以毫秒为单位返回当前时间 } public void stop() { if (!isRunning) return; isRunning = false; long endTime = System.currentTimeMillis(); elapsedTime = elapsedTime + endTime - startTime; //两时间相减得运行时间 } public long getElapsedTime() { if (isRunning) { long endTime = System.currentTimeMillis(); return elapsedTime + endTime - startTime; //多次执行可得方法总的执行时间 } else return elapsedTime; } public void reset() { elapsedTime = 0; isRunning = false; } private long elapsedTime; //经过的时间 private long startTime; private boolean isRunning; }
完成读文件并计算每一个方法执行的平均时间的步骤分析:
(1~4均使用数组实现)
1、计算文件中出现的总方法数
先记录第一个出现的方法,再分析第二个,若与第一个方法相同,跳过,若不同则记录下来,同理再分析第三个方法,将其与第一、二个比较,若与其中一个相同则跳过,反之则记录下来,依此类推,分析第n个方法,将其与之前的n-1个比较,若有相同的则跳过,若比较到第n-1个仍不相同,则记录下来。
2、记录每个方法每次出现的时间
数组数据类型为浮点型
3、记录每个方法出现的次数
数组初始化为0
数组数据类型为整型
一个方法出现一次,则其记录次数的数组的相应下标所对应的整数加1
4、求和计算每个方法出现的总时间
n个数组分别求和,存入一个新的数组中
5、计算每个方法执行的平均时间
平均时间=总时间/总次数
读文件操作一共执行两次,第一次是计算出文件中出现的总方法数,第二次是计算出每个方法执行的平均时间。
相关文章推荐
- 编写程序,实现读文件,计算方法执行平均时间
- VMware Tools"无法计算本地文件大小。你可能没有执行该操作的权限。”的解决方法
- 关于java读文件计算一个方法执行时间的程序的学习
- SQL执行时间计算两种方法
- 计算程序执行时间的方法
- 计算SQL执行时间的方法
- java 计算方法执行时间
- c# 计算程序执行时间方法
- 计算Java中任意一个方法的执行时间的工具类
- [导入]c# 统计方法执行时间,计算缓存读取数据方法的命中率
- 在执行 COMMIT 和 ROLLBACK 操作时, 等待 "日志文件同步" 事件消耗了大量数据库时间。
- C#.Net Mvc运营监控,计算方法/接口/action/页面执行时间
- VC精确计算代码执行时间方法
- 几种Python执行时间的计算方法
- 计算方法执行时间
- C# 计算方法执行需要的时间
- Python笔记——几种Python执行时间的计算方法
- C与Java中计算程序执行时间的方法
- 深入字节码 -- 计算方法执行时间
- ios 计算方法执行的时间