往文件中按行写入数据

简介:

如下代码是一个Java小程序,用于往文件写入数据。每次运行该程序,一个新的文件被创建,之前旧的文件被删除;这与往文件追加内容是有区别的。

复制代码
    public static void writeFile1() throws IOException {
        File fout = new File("out.txt");
        FileOutputStream fos = new FileOutputStream(fout);
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(fos));
        for (int i = 0; i < 10; i++) {
            bw.write("something");
            bw.newLine();
        }
        bw.close();
    }
复制代码

这个例子使用了FileOutputStream,除了该类你还可以使用FileWriter或者PrintWriter,对于文本操作,通常是足够的;

使用FileWriter:

复制代码
    public static void writeFile2() throws IOException {
        FileWriter fw = new FileWriter("out.txt");
        for (int i = 0; i < 10; i++) {
            fw.write("something");
        }
        fw.close();
    }
复制代码

使用PrintWriter:

复制代码
    public static void writeFile3() throws IOException {
        PrintWriter pw = new PrintWriter(new FileWriter("out.txt"));
        for (int i = 0; i < 10; i++) {
            pw.write("something");
        }
        pw.close();
    }
复制代码

使用OutputStreamWriter:

复制代码
    public static void writeFile4() throws IOException {
        File fout = new File("out.txt");
        FileOutputStream fos = new FileOutputStream(fout);
        OutputStreamWriter osw = new OutputStreamWriter(fos);
        for (int i = 0; i < 10; i++) {
            osw.write("something");
        }
        osw.close();
    }
复制代码

Java文档中的相关说明:

对于往文件写入字符数据,FileWriter是一个非常方便的类,这个类的构造方法使用了默认的字符编码和字节缓冲区大小。如果要自己指定这些值,可以先在 FileOutputStream 上构造一个 OutputStreamWriter。

PrintWriter是向文本输出流打印对象的格式化表示形式,该类实现了PrintStream中的所有print方法,它不包含用于写入原始字节的方法,对于这些字节,程序应该使用未编码的字节流进行写入。

主要的区别是PrintWriter提供了一些额外的方法用于格式化输出,如println、printf。另外如果发生任何I/O异常,FileWriter会抛出IOException,二PrintWriter不会抛出IOException,相反,它会设置一个boolean标志,该标志可以通过调用checkError()方法获取。PrintWriter在每次写入数据后会自动调用flush方法,然而对于FileWriter,调用者需要自己特别留意flush方法的调用。

 本文转自风一样的码农博客园博客,原文链接:http://www.cnblogs.com/chenpi/p/5498731.html,如需转载请自行联系原作者

相关文章
|
3月前
|
C#
C#读取txt文本的行数
C#读取txt文本的行数
35 0
|
1月前
Qt 按行追加文本代码
Qt 按行追加文本代码
11 0
|
4月前
|
C语言
从文件中读取一行
C 语言实例 - 从文件中读取一行。
34 3
|
8月前
|
存储 移动开发 Java
JavaNIO实现按行读取文件操作
在Java编程中,文件操作常常是必不可少的步骤。在对文件进行操作时,按行读取文件是一个常见需求。Java提供了多种方法实现按行读取文件,其中一种方法是使用JavaNIO。
138 0
|
8月前
|
Shell
从文件中删除重复行
从文件中删除重复行
64 1
|
9月前
从文件1中读取数据,修改数据的内容,然后存入文件2中,再从文件2中把数据读取出来显示在屏幕上
从文件1中读取数据,修改数据的内容,然后存入文件2中,再从文件2中把数据读取出来显示在屏幕上
110 0
|
Python
python如何读取xlsx文件,并指定读取某一列,逐个逐个取出指定列中的值
要读取xlsx文件并指定读取某一列,可以使用Python中的pandas库。以下是一个读取xlsx文件并逐个逐个取出指定列中的值的示例代码:
923 0
|
C语言 Python
从一个字节流中进行按行读取
从一个字节流中进行按行读取
160 0
编写一个程序,如果名为Exercise12_15.txt的文件不存在,则创建该文件。使用文本I/O将随机产生的100个整数写入文件,文件中的整数由空格分开。从文件中读回数据并以升序显示数据。
编写一个程序,如果名为Exercise12_15.txt的文件不存在,则创建该文件。使用文本I/O将随机产生的100个整数写入文件,文件中的整数由空格分开。从文件中读回数据并以升序显示数据。
239 0
|
索引
CSV文件读取——没有列索引如何处理
CSV文件读取——没有列索引如何处理
463 0
CSV文件读取——没有列索引如何处理