1

这就是我阅读文件的方式,如果我有一个比小杂货清单更大的清单,这种阅读文件的方式仍然是打开文件并从中获取信息的最有效方式吗?假设我没有购物清单,但可能有 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);


}

}
4

2 回答 2

2

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

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

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

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

慎重选择,希望对您有所帮助!

于 2013-05-03T17:42:55.437 回答
1

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

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

读取我最近使用的结构化文本文件的一种好方法是jsapar,它允许您将文件直接解析为 Java 列表。我并不是说它会比原始阅读更快,但它仍然很有帮助。

于 2013-05-03T17:40:55.697 回答