繁体   English   中英

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

[英]How to extract information from external file in Java

我在从正在编写的程序的外部文件中提取信息时遇到问题。 我班上的程序是我要编写一个程序,该程序成对读取数据(车辆,登机口编号),并输出车辆类型的名称,通行费,系数和收费公路总费用。

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惠勒$ 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惠勒$ 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

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

我发现最容易做到的是:

  1. 获取文件作为一个BufferedReader( http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html ),做喜欢的事BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)))
  2. 逐行读取文件:

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

用这种方式做。 您的数据将存储在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.
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM