Java 结构化数据文件读取
在日常的编程过程中,我们经常需要读取和处理结构化的数据文件。Java 作为一门强大的编程语言,提供了多种方式来读取和处理这些文件。本文将介绍如何使用 Java 读取结构化数据文件,并提供相应的代码示例。
结构化数据文件的概念
结构化数据文件是指按照一定格式和规范组织的数据文件,常见的结构化数据文件包括 CSV、XML、JSON 等。这些文件通常由多行多列的数据组成,每个字段之间使用特定的分隔符或者标记进行分隔。
读取 CSV 文件
CSV(Comma-Separated Values)是一种常见的结构化数据文件格式,它使用逗号作为字段之间的分隔符。下面是一个示例的 CSV 文件:
Name,Age,Gender
John,25,Male
Emily,30,Female
要读取 CSV 文件,我们可以使用 Java 内置的类库 java.io.BufferedReader
和 java.io.FileReader
,如下所示:
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
public class CSVReader {
public static void main(String[] args) {
String csvFile = "data.csv";
String line = "";
String csvSplitBy = ",";
try (BufferedReader br = new BufferedReader(new FileReader(csvFile))) {
while ((line = br.readLine()) != null) {
String[] data = line.split(csvSplitBy);
System.out.println("Name: " + data[0] + ", Age: " + data[1] + ", Gender: " + data[2]);
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
上述代码使用 BufferedReader
来读取文件,并使用 split
方法按照逗号分隔每一行数据。最后,我们将每个字段打印出来。
读取 XML 文件
XML(eXtensible Markup Language)是一种常用的结构化数据文件格式,它使用标签和属性来描述数据。下面是一个示例的 XML 文件:
<students>
<student>
<name>John</name>
<age>25</age>
<gender>Male</gender>
</student>
<student>
<name>Emily</name>
<age>30</age>
<gender>Female</gender>
</student>
</students>
要读取 XML 文件,我们可以使用 Java 提供的第三方库 javax.xml.parsers.DocumentBuilderFactory
和 org.w3c.dom.Document
,如下所示:
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import java.io.File;
public class XMLReader {
public static void main(String[] args) {
try {
File xmlFile = new File("data.xml");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(xmlFile);
doc.getDocumentElement().normalize();
NodeList nodeList = doc.getElementsByTagName("student");
for (int temp = 0; temp < nodeList.getLength(); temp++) {
Node node = nodeList.item(temp);
if (node.getNodeType() == Node.ELEMENT_NODE) {
Element element = (Element) node;
String name = element.getElementsByTagName("name").item(0).getTextContent();
String age = element.getElementsByTagName("age").item(0).getTextContent();
String gender = element.getElementsByTagName("gender").item(0).getTextContent();
System.out.println("Name: " + name + ", Age: " + age + ", Gender: " + gender);
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
上述代码使用 DocumentBuilderFactory
和 DocumentBuilder
来解析 XML 文件,并使用 getElementsByTagName
方法来获取每个学生节点的信息。
读取 JSON 文件
JSON(JavaScript Object Notation)是一种常用的结构化数据文件格式,它使用键值对的方式来表示数据。下面是一个示例的 JSON 文件:
[
{
"name": "John",
"age": 25,
"gender": "Male"
},
{
"name": "Emily",
"age": 30,
"gender": "Female"
}
]
要读取 JSON 文件,我们可以使用 Java 提供的第三方库 org.json.JSONArray
和 `org.json.JSONObject