[英]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
我知道我可以完成程序的其余部分,但是从文件中提取信息并使用它仍然使我感到困惑。 有人可以指导我利用外部文件吗? 任何帮助是极大的赞赏。
我发现最容易做到的是:
BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName)))
。 逐行读取文件:
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.