如何读取一个文本文件,并处理和显示里面的制定内容? 有一个文本文件,里面包含:name salary张三 500.0李四 510.0现在我需要一个java程序,读取这个文件,并显示工资的总和。请各位大侠帮帮忙,想想~~~ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 readLine,然后split(" ")得到 str[1](工资),parseDouble累加 可以给出详细的JAVA 代码吗? class Test { static public void main(String [] args) throws Exception { File f = new File(fileName); BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStreamReader(f))); String line = reader.readLine(); String [] detail = null; double salary = 0; double total = 0; while(line != null) { detail = line.split(" "); try { if (detail.length > 1) { salary = Double.parseDouble(detail[1]); } } catch (NumberFormatException e) { salary = 0D; } finally { total += salary; } line = reader.readLine(); } reader.close(); System.out.println("total: " + total); }} 更正 应该是 BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(f))); 测试通过的代码如下,有问题可以联系我http://www.urlshow.com/** * @时间: 2005-10-28 * 内部说明: */import java.io.BufferedReader;import java.io.FileReader;import java.io.IOException;import java.math.BigDecimal;import java.util.StringTokenizer;public class 读取工资 { private String 工资文件; private double 工资合计=0; public 读取工资(String 工资文件){ this.工资文件=工资文件; } private double do加法(double 被加数,double 加数){ return (new BigDecimal(Double.toString(被加数))).add(new BigDecimal(Double.toString(加数))).doubleValue(); } public void do显示() throws NumberFormatException, IOException{ FileReader 读取=new FileReader(this.工资文件); BufferedReader 缓存=new BufferedReader(读取); String 工资=null; StringTokenizer 分割; double 员工工资; String 员工姓名; if(缓存.readLine()!=null) while((工资 = 缓存.readLine())!=null){ 分割=new StringTokenizer(工资," "); 员工姓名=分割.nextToken(); 员工工资=Double.parseDouble(分割.nextToken()); System.out.println(员工姓名+"工资="+员工工资); this.工资合计=do加法(员工工资,this.工资合计); } //支出信息增加,医院信息增加,个人信息修改 缓存.close(); 读取.close(); System.out.println("工资合计:"+this.工资合计); } /** * 功能: TODO * @param args */ public static void main(String[] args) { 读取工资 读取工资=new 读取工资("c:/temp/a.txt"); try { 读取工资.do显示(); } catch (NumberFormatException e) { System.out.println("格式错误"); System.out.println(e.getMessage()); } catch (IOException e) { System.out.println("文件读取错误"); System.out.println(e.getMessage()); } //System.out.println(读取工资.get工资合计()); } /** * Get方法 * @return 返回 工资合计。 */ public double get工资合计() { return 工资合计; }} 保存数据时使用对象流(ObjectOutputStream) 读取数据时也使用对象流(ObjectInputStream) 就可以比较简单的实现 你的问题 xuender(徐强) ( )你的代码好猛,怕怕~~~ xuender(徐强)大哥 !!能不能不用中文写 !看的头晕晕的!!谢谢你的热心回答!!!! 非常感谢 xuender(徐强) 大哥 请问:pauliuyou(paul)是不是什么地方不对啊,程序运行结果是0.0啊 关于循环与再次循环的问题。 新人求教,高手来花几分钟回复下吧,谢谢了。如何通过鼠标拖拽改变JLABEL图片顺序? Java初学者的问题 求JFreeChart包 谁帮我看看我的java访问数据库的问题,十分感谢 如何获取存储过程返回的结果? 怎样在一个循环中判断用户是否按下了某个键 用Java写一个普通的进销存软件,可行性有多少? scjp真题的问题! 初学,请教一个关于定义函数返回值类型的问题 新手问题!!! 如何用jdk编译含有别的包的程序?
累加
static public void main(String [] args) throws Exception {
File f = new File(fileName);
BufferedReader reader = new BufferedReader(new InputStreamReader(new
FileInputStreamReader(f)));
String line = reader.readLine();
String [] detail = null;
double salary = 0;
double total = 0;
while(line != null) {
detail = line.split(" ");
try {
if (detail.length > 1) {
salary = Double.parseDouble(detail[1]);
}
}
catch (NumberFormatException e) {
salary = 0D;
}
finally {
total += salary;
}
line = reader.readLine();
}
reader.close();
System.out.println("total: " + total);
}
}
FileInputStream(f)));
/**
* @时间: 2005-10-28
* 内部说明:
*/
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.StringTokenizer;public class 读取工资 {
private String 工资文件;
private double 工资合计=0;
public 读取工资(String 工资文件){
this.工资文件=工资文件;
}
private double do加法(double 被加数,double 加数){
return (new BigDecimal(Double.toString(被加数))).add(new BigDecimal(Double.toString(加数))).doubleValue();
}
public void do显示() throws NumberFormatException, IOException{
FileReader 读取=new FileReader(this.工资文件);
BufferedReader 缓存=new BufferedReader(读取);
String 工资=null;
StringTokenizer 分割;
double 员工工资;
String 员工姓名;
if(缓存.readLine()!=null)
while((工资 = 缓存.readLine())!=null){
分割=new StringTokenizer(工资," ");
员工姓名=分割.nextToken();
员工工资=Double.parseDouble(分割.nextToken());
System.out.println(员工姓名+"工资="+员工工资);
this.工资合计=do加法(员工工资,this.工资合计);
}
//支出信息增加,医院信息增加,个人信息修改
缓存.close();
读取.close();
System.out.println("工资合计:"+this.工资合计);
}
/**
* 功能: TODO
* @param args
*/
public static void main(String[] args) {
读取工资 读取工资=new 读取工资("c:/temp/a.txt");
try {
读取工资.do显示();
} catch (NumberFormatException e) {
System.out.println("格式错误");
System.out.println(e.getMessage());
} catch (IOException e) {
System.out.println("文件读取错误");
System.out.println(e.getMessage());
}
//System.out.println(读取工资.get工资合计());
}
/**
* Get方法
* @return 返回 工资合计。
*/
public double get工资合计() {
return 工资合计;
}
}
是不是什么地方不对啊,程序运行结果是0.0啊