如何从Java中的外部文件中提取信息

时间:2014-02-25 22:09:22

标签: java java-io

我无法从我正在编写的程序的外部文件中提取信息。我班的程序是我要写一个程序,读取成对的数据(车辆,门号)并输出车辆类型的名称,收费,因素和收费公路使用的总账单。

Vehicle Type     Factor Car Type

1                  1.0  Compact Car

2                  1.3  Small Car

3                  1.6  Mid Size Car

4                  2.0  Full size Car

5                  2.4  Truck

6                  2.7  16 Wheeler


Gate    Toll

1       1.35

2       2.00

3       2.50

4       3.25

5       4.10

6       4.8

7       5.50

8       6.00

实施例。输出:

汽车类型基本收费因子成本

紧凑型轿车$ 1.35 1.00 $ 1.35

小型车$ 2.50 1.30 $ 3.25

中型车$ 4.10 1.60 $ 6.56

全尺寸车$ 5.50 2.00 $ 11.00

卡车$ 2.00 2.40 $ 4.80

16 Wheeler $ 3.25 2.70 $ 8.78

小型车$ 4.80 1.00 $ 4.80

小型车$ 6.00 1.30 $ 7.80

中型车$ 1.35 1.60 $ 2.16

全尺寸车$ 2.50 2.00 $ 5.00

卡车$ 4.10 2.40 $ 9.84

16 Wheeler $ 5.50 2.70 $ 14.85

紧凑型车$ 6.00 1.00 $ 6.00

小型车$ 1.35 1.30 $ 1.75

中型车$ 2.00 1.60 $ 3.20

全尺寸车$ 2.50 2.00 $ 5.00

卡车$ 3.25 2.40 $ 7.80

16 Wheeler $ 4.10 2.70 $ 11.07

(程序应输出的内容如上所示)

我知道如何读取外部文件,但我不确定提取和使用文件中的信息是否需要一系列不同的步骤。我不知道我是否遗漏了一些明显的东西,因为我还是初学者,但我的基本代码是带有外部文件的while循环:

import java.io.*;
import java.util.*;
public class Prog40
{
   public static void main(String[] args) throws IOException 
   {
       Scanner kbReader = new Scanner(new File("C:\\Users\\Guest\\Documents\\Programs\\Prog40\\Prog40.in"));
       while(kbReader.hasNext())
       {

       }
    }
}

文件数据是:

1 1

2 3

3 5

4 7

5 2

6 4

1 6

2 8

3 1

4 3

5 5

6 7

1 8

2 1

3 2

4 3

5 4

6 5

我知道我可以完成程序的其余部分,但是从文件中提取信息并使用它仍然让我感到困惑。有人可以指导我使用外部文件吗?非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

我觉得最容易做的是:

  1. 通过执行类似BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)))的操作,将文件作为BufferedReader(http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html)获取。
  2. 逐行阅读文件:

    String line;
    while( (line=reader.readLine())!=null){
       //do something with the line of text.
    }
    

答案 1 :(得分:0)

以这种方式做。您的数据将存储在resultCollection中。

public class Prog40
{
   public static void main(String[] args) throws IOException 
   {
       Scanner kbReader = new Scanner(new File("C:\\Users\\Guest\\Documents\\Programs\\Prog40\\Prog40.in"));
    List<String> resultCollection = new ArrayList<String>();
       while(kbReader.hasNext())
       {
           String line = kbReader.nextLine();
           resultCollection.add(line);
       }
    }
}

在resultCollection中获取后,您可以对其执行一些操作。

public void someAction(List<String> resCollection){
//do stuff there.
}