Java 写入文件 - 用 Java 写入文件的 4 种方法

我們可以使用 FileWriter, BufferedWriter, java 7 FilesFileOutputStream來寫一個在 Java 的檔案。

Java 写到文件

java write to file, write file in java Let's have a brief look at four options we have for java write to file operation.

  1. FileWriter:FileWriter是用Java编写文件的最简单的方法。它提供了过载的编写方法来编写int、byte array和string到文件中。您也可以使用FileWriter编写部分的字符串或byte array。FileWriter直接写入Files,并且应该只在编写次数较少时使用BufferedWriter
  2. BufferedWriter:BufferedWriter几乎与FileWriter相似,但它使用内部缓冲器来编写数据到文件中。因此,如果编写次数较多,实际IO操作较少,而且性能较好。您应该使用BufferedWriter当编写次数较少
  3. 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 示例。

Published At
Categories with 技术
Tagged with
comments powered by Disqus