【发布时间】:2014-01-13 12:11:22
【问题描述】:
我有一个 Vehicle 类,它包含有关 Vehicle 对象的所有信息,包括 get 和 set 方法。还有一个 Showroom 类,它维护所有 Vehicle 对象的列表,以及添加/删除和滚动列表的方法。
在我的主要(一个名为 VehicleDriverClass 的单独类)中,我试图使用 I/O 将车辆数据写入文件并从文件中读取车辆数据。我可以很好地写入文件。我正在使用记事本和一个 .txt 文件来读取。我遇到的问题是如何在从文件中读取时终止行尾。这是 Vehicle 类的构造函数,因此您知道参数。
public Vehicle(String man, String mod, String VIN, String dateOfMan, char taxBand, int costOfVehicle)
{
this.manufacturer = man;
this.model = mod;
this.VIN = VIN;
this.dateOfManufacture = dateOfMan;
this.taxBand = taxBand;
this.costOfVehicle = costOfVehicle;
}
这就是我目前的输入法(不尝试创建对象,只是从文件中读取)。传递给它的 Showroom 供以后使用,当我创建车辆对象并将其添加到陈列室时。
// 代码替换如下。
使用此实现,当 dataFromFile 输出到控制台时,它都在一行上,而不是在新行上。读入'\n'时readline()不会终止行吗?
这是我的数据在输入文件中的存储方式。
Fordtest\n Focus\n frank\n ioCheck\n 09/01/1989\n 23/11/2013\n true\n d\n 1995\n
那么现在,我如何让线路终止?这样我就可以从这里实现一个对象的创建。
编辑:I/O 现在正在工作。我现在遇到了我的 Vehicle 对象的构造函数需要最后两个变量的数据类型 char 和 int 的问题。使用当前方法,它们位于字符串数组中。
我已经从上面删除了代码,并在下面添加了新的实现。public static void
addNewVehicleFromFile(Showroom s) { 字符串数据从文件; 字符串[] 标记 = null;
try
{
File fileReader = new File("AddNewVehicleFromFile.txt");
FileReader fr = new FileReader(fileReader);
BufferedReader br = new BufferedReader(fr);
while ((dataFromFile = br.readLine()) != null)
{
tokens = dataFromFile.split("~");
}
System.out.println(Arrays.toString(tokens));
Vehicle inputVehicle = new Vehicle(tokens[0], tokens[1], tokens[2], tokens[3],
tokens[4], tokens[5]);
/*
Erorr above here with these two. token[4] should be a char and [5] an int
*/
s.addVehicle(inputVehicle);
System.out.println("addNewVehicleFromFile Complete");
}
catch (FileNotFoundException fnfe)
{
System.out.println("File not found exception: " + fnfe.toString());
}
catch (IOException ioe)
{
System.out.println("I/O exception: " + ioe.toString());
}
}
我应该编写自己的 toChar 和 toInt 方法来调用这两个变量吗?或解析为 int 或类似的。
【问题讨论】:
标签: java object io bufferedreader filereader