如何将文件解析为 java 中的对象?
How to parse file to object in java?
我想从file.txt
读取数据然后解析到我们的对象
例如我有下面的ferrari.txt
,里面有
Car{mark='ferrari', model='sf90', productionYear=2020, hp=1000}
现在我应该将其解析为 Car
对象。
但是我在 google 上找到的所有内容看起来都不像我应该使用的(也许我搜索错误)
添加代码:
主要:
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
Car car1 = new Car("ferrari", "sf90", 2020, 1000);
Car car2 = new Car("fiat", "panda", 2015, 95);
Car car3 = new Car("bmw", "m5CS", 2018, 645);
Car car4 = new Car("audi", "rs7", 2019, 750);
List<Car> carList = new ArrayList<>(Arrays.asList(car1, car2, car3, car4));
createCarFile(carList); //method to create the file (not added in the code)
write(carList); //method to wride the file (not added in the code)
readFileByMark("ferrari");
}
public static void readFileByMark(String mark) {
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(mark + ".txt"));
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException exception) {
exception.printStackTrace();
}
}
}
在这段代码中,我正在读取我想在方法中调用的文件名 - 现在我假设插入这段代码我必须执行“解析”?
您无法“解析”该格式。如果在二进制文件中序列化 Car
对象,就可以做到这一点。但是由于您使用的是纯文本文件,因此不可能发生这样的事情。该格式也不是 well-known 格式(例如 JSON)。如果它是 well-known 格式之一,您可以使用许多可用的库之一来为您完成。您可以尝试映射字段,但这并不是那么简单。
我的建议是将格式更改为JSON。它易于理解,使用起来很快,并且有多种库支持它。
我想从file.txt
读取数据然后解析到我们的对象
例如我有下面的ferrari.txt
,里面有
Car{mark='ferrari', model='sf90', productionYear=2020, hp=1000}
现在我应该将其解析为 Car
对象。
但是我在 google 上找到的所有内容看起来都不像我应该使用的(也许我搜索错误)
添加代码: 主要:
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Main {
public static void main(String[] args) {
Car car1 = new Car("ferrari", "sf90", 2020, 1000);
Car car2 = new Car("fiat", "panda", 2015, 95);
Car car3 = new Car("bmw", "m5CS", 2018, 645);
Car car4 = new Car("audi", "rs7", 2019, 750);
List<Car> carList = new ArrayList<>(Arrays.asList(car1, car2, car3, car4));
createCarFile(carList); //method to create the file (not added in the code)
write(carList); //method to wride the file (not added in the code)
readFileByMark("ferrari");
}
public static void readFileByMark(String mark) {
try {
BufferedReader bufferedReader = new BufferedReader(new FileReader(mark + ".txt"));
String line;
while ((line = bufferedReader.readLine()) != null) {
System.out.println(line);
}
} catch (IOException exception) {
exception.printStackTrace();
}
}
}
在这段代码中,我正在读取我想在方法中调用的文件名 - 现在我假设插入这段代码我必须执行“解析”?
您无法“解析”该格式。如果在二进制文件中序列化 Car
对象,就可以做到这一点。但是由于您使用的是纯文本文件,因此不可能发生这样的事情。该格式也不是 well-known 格式(例如 JSON)。如果它是 well-known 格式之一,您可以使用许多可用的库之一来为您完成。您可以尝试映射字段,但这并不是那么简单。
我的建议是将格式更改为JSON。它易于理解,使用起来很快,并且有多种库支持它。