Java 对文档的读写
时间: 2023-08-24 11:05:04 浏览: 82
Java 提供了多种处理文档的方式,其中包括读写文本文件、读写二进制文件、读写 XML 文件等。以下是几种常见的读写文档的方法:
1. 读取文本文件
使用 Java 中的 FileReader 和 BufferedReader 类可以读取文本文件。示例代码:
```
FileReader fr = new FileReader("file.txt");
BufferedReader br = new BufferedReader(fr);
String line;
while ((line = br.readLine()) != null) {
// 处理每一行文本
}
br.close();
fr.close();
```
2. 写入文本文件
使用 Java 中的 FileWriter 和 BufferedWriter 类可以写入文本文件。示例代码:
```
FileWriter fw = new FileWriter("file.txt");
BufferedWriter bw = new BufferedWriter(fw);
bw.write("Hello, world!");
bw.newLine();
bw.write("This is a new line.");
bw.close();
fw.close();
```
3. 读取二进制文件
使用 Java 中的 FileInputStream 和 DataInputStream 类可以读取二进制文件。示例代码:
```
FileInputStream fis = new FileInputStream("file.bin");
DataInputStream dis = new DataInputStream(fis);
int num = dis.readInt();
double value = dis.readDouble();
byte[] buffer = new byte[1024];
dis.read(buffer);
dis.close();
fis.close();
```
4. 写入二进制文件
使用 Java 中的 FileOutputStream 和 DataOutputStream 类可以写入二进制文件。示例代码:
```
FileOutputStream fos = new FileOutputStream("file.bin");
DataOutputStream dos = new DataOutputStream(fos);
dos.writeInt(10);
dos.writeDouble(3.14);
byte[] buffer = new byte[1024];
dos.write(buffer);
dos.close();
fos.close();
```
5. 读取 XML 文件
使用 Java 中的 DOM 和 SAX 解析器可以读取 XML 文件。示例代码:
```
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(new File("file.xml"));
NodeList nodes = doc.getElementsByTagName("book");
for (int i = 0; i < nodes.getLength(); i++) {
Node node = nodes.item(i);
String title = node.getAttributes().getNamedItem("title").getNodeValue();
String author = node.getAttributes().getNamedItem("author").getNodeValue();
// 处理每一本书的信息
}
```
6. 写入 XML 文件
使用 Java 中的 DOM 和 SAX 解析器可以写入 XML 文件。示例代码:
```
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.newDocument();
Element root = doc.createElement("library");
doc.appendChild(root);
Element book = doc.createElement("book");
book.setAttribute("title", "Java Programming");
book.setAttribute("author", "John Smith");
root.appendChild(book);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer transformer = tf.newTransformer();
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "4");
StreamResult result = new StreamResult(new File("file.xml"));
DOMSource source = new DOMSource(doc);
transformer.transform(source, result);
```
以上是 Java 中几种读写文档的方法,具体应该根据实际需求选择适合的方式。
阅读全文