从列表中读取文件

时间:2013-05-03 17:32:39

标签: java file methods split

这就是我阅读文件的方式,如果我有一个比小杂货清单更大的清单,这种阅读文件的方式仍然是打开文件并从中获取信息的最有效方式吗?可以说我没有购物清单但可能是Excel文件?需要做些什么改变?

此购物清单可以如下(其.txt文件)

Item Price Quantity

Apple 2.99 2

Orange 1.99 1

Juice 4.99 3

Chicken 9.99 1

Milk 2.99 1

代码:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class ReadingFiles{

public static void main(String[] args) throws FileNotFoundException {

Scanner g = new Scanner(new File("groceries.txt"));
double sum = 0;

g.nextLine();

while (g.hasNext())
{
    String a = g.nextLine();

    String [] c = a.split(" ");
    String item = c[0];
    double price = Double.parseDouble(c[1]);
    int q = Integer.parseInt(c[2]);

    if(!item.equals("Chicken"))
    {
        sum = sum +(price*q);
    }

}

System.out.println("The total is: "+sum);


}

}

2 个答案:

答案 0 :(得分:2)

如果它是纯文本文件,我相信你正在正确阅读它。但是如果你有一个excel要使用Apache POI,它提供了某些易于使用的API。以下是相同的参考网址:

http://viralpatel.net/blogs/java-read-write-excel-file-apache-poi/

如果您有权控制或决定可以使用哪个文件存储杂货数据,那么csv也是一个不错的选择。这是另一个帮助您阅读csv的链接:

http://viralpatel.net/blogs/java-read-write-csv-file/

明智地选择,希望它有所帮助!

答案 1 :(得分:1)

如果您需要阅读的文件是Excel文件,您可能希望使用现有的一个API来读取Java文件。最着名的选择是:

  • jExcelAPI相当轻量级,在处理大文件时往往会消耗更少的内存,但仅限于读取和写入.xls(Excel 2003及更早版本)文件。由于作者的网站现在看起来很糟糕,有一个很好的简短示例here,它显示了读取xls文件是多么容易。
  • Apache POI HSSF/XSSF,更复杂的选项,也可以处理.xlsx文件(Excel 2007及更高版本),但代价是更高的内存消耗和更难学习的API。

读取我最近使用的结构化文本文件的好方法是jsapar,它允许您将文件直接解析为Java列表。我并没有声称它比原始阅读更快,但它仍然非常有用。