java如何打开文件来编写

时间:2014-01-15 12:26:50

标签: java file-io character-encoding

我想写一个文件,但混合了3波纹管功能。怎么样?

  1. BufferedWriter,需要大量数据写入
  2. 可以附加到现有文本文件
  3. 可以设置像“cp1256”
  4. 这样的字符集

    如何将所有这些功能混合打开写文件?

2 个答案:

答案 0 :(得分:0)

首先要做的是,发起你的BufferedWriter

`

    String fileName = METHOD ARGUMENT, OR REGULAR STRING ("Output.txt");
    BufferedWriter writer = null;
    try {

       File outFile = new File(fileName);

           writer = new BufferedWriter(new FileWriter(OUTPUT NAME OF THE FILE YOU ARE WRITING. , true)); 
           writer.write(WHAT YOU WANT TO WRITE TO THE FILE);
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            // Close the writer regardless of what happens...
            writer.close();
        } catch (Exception e) {
        }

现在解释一下代码,所以我不只是把它喂给你。 当我们声明BufferedWriter writer = null;时,我们将它设置为null,这样我们就不会在没有设置Try / Catch异常处理程序的情况下编写任何内容。

一旦我们处理了异常,我们就会发起一个名为outFile的File。这将是我们输出的文件。我们给它的参数是文件名的名称。 (A String值,例如“Output.txt”)注意:您必须添加扩展名,否则它将无法按照您希望的方式工作。

接下来,当我们再次引用BufferedWriter时,我们在try / catch处理程序中启动一个新的,在内部我们启动一个FileWriter(将对文件进行写操作)。我们给它两个论点。输出文件的名称(“Output.txt”),我们还提供true参数。这样做是使文件可附加!当我们写真时,我们说我们希望文件可以附加。

最后,我们写入文件,无论你想写什么。

至于第三个功能,我不认为FileWriter会允许你选择你想要写的字符编码,所以除非你不使用UTF-8,那么你可能想要使用PrintWriter

要做到这一点,你只需要替换我们的`writer = new BufferedWriter(新的FileWriter(你写的文件的输出名称,真实));

writer = new BufferedWriter(new PrintWriter(outputName, "UTF-8"));

我认为这应该有效,如果没有,请告诉我,我会找到一个有效的解决方案。

答案 1 :(得分:-1)

public class WriteFile {
BufferedWriter out;
public void openFile(String file){
    try {
        out = new BufferedWriter(new FileWriter("data.txt"));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
public void writeInts(int[] ints){
    try {
        for(int i : ints) out.write(i+" ");
        out.newLine();
        out.flush();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}
public void closeFile(){
    try {
        if (out!=null)out.close();
    } catch (IOException e) {
    }
}

}

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Test {
public static void main(String[] args) throws IOException {
    WriteFile wf = new WriteFile();
    wf.openFile("test.txt");
    wf.writeInts(new int[]{1,2,3,4,5});
    wf.writeInts(new int[]{5,4,3,2,1});
    wf.closeFile();
    BufferedReader bf = new BufferedReader(new FileReader("test.txt"));
    System.out.println(bf.readLine());
    System.out.println(bf.readLine());
}

}

输出: 第1行:1 2 3 4 5 第2行:5 4 3 2 1