我們可以使用 FileWriter, BufferedWriter, java 7 Files和 FileOutputStream來寫一個在 Java 的檔案。
Java 写到文件
Let's have a brief look at four options we have for java write to file operation.
- FileWriter:FileWriter是用Java编写文件的最简单的方法。它提供了过载的编写方法来编写int、byte array和string到文件中。您也可以使用FileWriter编写部分的字符串或byte array。FileWriter直接写入Files,并且应该只在编写次数较少时使用BufferedWriter
- BufferedWriter:BufferedWriter几乎与FileWriter相似,但它使用内部缓冲器来编写数据到文件中。因此,如果编写次数较多,实际IO操作较少,而且性能较好。您应该使用BufferedWriter当编写次数较少
- FileOutStream:File
Java 写成文件示例
以下是示例,我们如何使用FileWriter,BufferedWriter,FileOutputStream和Java中的文件来编写Java中的文件。
1package com.journaldev.files;
2
3import java.io.BufferedWriter;
4import java.io.File;
5import java.io.FileOutputStream;
6import java.io.FileWriter;
7import java.io.IOException;
8import java.io.OutputStream;
9import java.nio.file.Files;
10import java.nio.file.Paths;
11
12public class WriteFile {
13
14 /**
15 * This class shows how to write file in java
16 * @param args
17 * @throws IOException
18 */
19 public static void main(String[] args) {
20 String data = "I will write this String to File in Java";
21 int noOfLines = 10000;
22 writeUsingFileWriter(data);
23
24 writeUsingBufferedWriter(data, noOfLines);
25
26 writeUsingFiles(data);
27
28 writeUsingOutputStream(data);
29 System.out.println("DONE");
30 }
31
32 /**
33 * Use Streams when you are dealing with raw data
34 * @param data
35 */
36 private static void writeUsingOutputStream(String data) {
37 OutputStream os = null;
38 try {
39 os = new FileOutputStream(new File("/Users/pankaj/os.txt"));
40 os.write(data.getBytes(), 0, data.length());
41 } catch (IOException e) {
42 e.printStackTrace();
43 }finally{
44 try {
45 os.close();
46 } catch (IOException e) {
47 e.printStackTrace();
48 }
49 }
50 }
51
52 /**
53 * Use Files class from Java 1.7 to write files, internally uses OutputStream
54 * @param data
55 */
56 private static void writeUsingFiles(String data) {
57 try {
58 Files.write(Paths.get("/Users/pankaj/files.txt"), data.getBytes());
59 } catch (IOException e) {
60 e.printStackTrace();
61 }
62 }
63
64 /**
65 * Use BufferedWriter when number of write operations are more
66 * It uses internal buffer to reduce real IO operations and saves time
67 * @param data
68 * @param noOfLines
69 */
70 private static void writeUsingBufferedWriter(String data, int noOfLines) {
71 File file = new File("/Users/pankaj/BufferedWriter.txt");
72 FileWriter fr = null;
73 BufferedWriter br = null;
74 String dataWithNewLine=data+System.getProperty("line.separator");
75 try{
76 fr = new FileWriter(file);
77 br = new BufferedWriter(fr);
78 for(int i = noOfLines; i>0; i--){
79 br.write(dataWithNewLine);
80 }
81 } catch (IOException e) {
82 e.printStackTrace();
83 }finally{
84 try {
85 br.close();
86 fr.close();
87 } catch (IOException e) {
88 e.printStackTrace();
89 }
90 }
91 }
92
93 /**
94 * Use FileWriter when number of write operations are less
95 * @param data
96 */
97 private static void writeUsingFileWriter(String data) {
98 File file = new File("/Users/pankaj/FileWriter.txt");
99 FileWriter fr = null;
100 try {
101 fr = new FileWriter(file);
102 fr.write(data);
103 } catch (IOException e) {
104 e.printStackTrace();
105 }finally{
106 //close resources
107 try {
108 fr.close();
109 } catch (IOException e) {
110 e.printStackTrace();
111 }
112 }
113 }
114
115}
这些是编写Java文件的标准方法,你应该根据你的项目要求选择其中任何一种。
您可以从我们的 GitHub 存储库中查阅更多 Java IO 示例。