Java如何读取TXT文件中的部分数字

我的TXT文件内容是这样的
shoes 25.3 5 126.5
cloths 50.0 10 500.0
sugar 1.25 1 1.25
coffee 3.0 7 21.0
telephone 20.0 2 40.0
cup 4.0 25 100.0
我要怎么才能读取最后一排的所有数字并加起来

java读取txt文件内容,可以作如下理解:
1、首先获得一个文件句柄。File file = new File(); file即为文件句柄。两人之间连通电话网络了,接下来可以开始打电话了;
2、通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了。接下来需要解读成乙方可以理解的东西;
3、既然使用了FileInputStream()。那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据;
4、解读完成后就要输出,那么要转换成IO可以识别的数据。那就需要调用字节码读取的方法BufferedReader(),同时使用BufferedReader()的readline()方法读取txt文件中的每一行数据。
参考代码如下:

package com.campu;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.Reader;

/**
* @author 码农小江
* H20121012.java
* 2012-10-12下午11:40:21
*/
public class H20121012 {
/**
* @param filePath
*/
public static void readTxtFile(String filePath){
try {
String encoding="GBK";
File file=new File(filePath);
if(file.isFile() && file.exists()){ //判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file),encoding);//考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
while((lineTxt = bufferedReader.readLine()) != null){
System.out.println(lineTxt);
}
read.close();
}else{
System.out.println("找不到指定的文件");
}
} catch (Exception e) {
System.out.println("读取文件内容出错");
e.printStackTrace();
}

}

public static void main(String argv[]){
String filePath = "L:\\Apache\\htdocs\\res\\20121012.txt";
// "res/";
readTxtFile(filePath);
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-26

参考一下:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.math.BigDecimal;

public class ReadText {

/**
 * @param args
 */
public static void main(String[] args) {
FileReader fr = null;
BufferedReader br = null;
BigDecimal sum = new BigDecimal(0);
try {
fr = new FileReader("C:/demo.txt");
br = new BufferedReader(fr);
String s1 = null;
while ((s1 = br.readLine()) != null) {
String tt[] = s1.split("\\s{1,}");
sum = sum.add(new BigDecimal(tt[1])).add(new BigDecimal(tt[2]))
.add(new BigDecimal(tt[3]));
}
System.out.println(sum);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fr.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}

}

}

追问

解决了 多谢!!!

本回答被提问者采纳
第2个回答  2014-10-23
很简单,将TXT读成字符串,以\r分隔符拆分字符串,这样每一行是一个字符串,再以空格拆分,可以将数据存成一个二维数组,例如是data,那你将data[0][3]+data[1][3]+data[2][3]......就可以了,别忘了用Double.parseDouble将字符串转成数字追问

但是我不会用代码实现 = =.......

第3个回答  2014-10-23
先判断出文件读取结束 再将所有你需要的数字相加就行了
第4个回答  2014-10-23
文件流的读取你就自己搞定吧,下面的步骤如下:
String str ="shoes 25.3 5 126.5\ncloths 50.0 10 500.0\nsugar 1.25 1 1.25\ncoffee 3.0 7 21.0ntelephone 20.0 2 40.0\ncup 4.0 25 100.0";
String[] splitArray = str.trim().split("\n");
String[] newSplitArray = splitArray[splitArray.length-1].trim().split(" ");
double returnD =0;
for ( int i = 0; i < newSplitArray.length; i++ ) {
if(newSplitArray[i].matches("[\\d.]+")){
returnD+=Double.parseDouble(newSplitArray[i]);
}
}
System.out.println(returnD);追问

解决了 多谢!

相似回答