文本文件io和换行符

时间:2014-12-08 06:27:43

标签: java file-io newline

我正在为我们读取和写入文件的类做一个赋值,它具有从一到一百的偶数和奇数。该文件必须读写奇数和偶数的实例。我得到的文件输出偶数和奇数,但我的问题是每个都显示在控制台中的单独行。一切都打印到一行。很抱歉,如果这可能是重复发布,但我已尝试newline()"\n""\r\n"没有任何效果。有谁知道如何实现这一目标的一个例子?我正在使用Windows。

这是我的代码:

package textFile_I_O;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;

public class TextFile_I_O 
{


    public static void main(String[] args) throws IOException//throws IOException 
    {
        evenFile();
        oddFile();

        FileInputStream file = new FileInputStream("numbers.dat");
        DataInputStream data = new DataInputStream(file);
        BufferedReader buffer = new BufferedReader(new InputStreamReader(data));
        System.out.println(buffer.readLine());
        buffer.close();
    }   

    private static void evenFile() throws IOException 
    {
        BufferedWriter  write1 = new BufferedWriter(new FileWriter("numbers.dat"));


        for(int i = 1; i <= 100; i++)

            if(i % 2 == 0)
            {
                write1.write(i + ",");

            }

            write1.close();
        }   

        private static void oddFile() throws IOException
        {
            PrintWriter write2 = new PrintWriter(new FileWriter("numbers.dat", true));


            for(int j = 1; j <= 100; j++)
                if(j % 2 == 1)
                {

                    write2.print(j + ",");
                }
            write2.close();
    }
}   

2 个答案:

答案 0 :(得分:1)

你试试这种方式..

  private static void oddFile() throws IOException
    {
        PrintWriter write2 = new PrintWriter(new FileWriter("numbers.dat", true));

          write2.print("\n");
        for(int j = 1; j <= 100; j++)
            if(j % 2 == 1)
            {

                write2.print(j + ",");
            }
        write2.close();
  }

在您的主要方法::打印如下

    evenFile();
    oddFile();

    FileInputStream file = new FileInputStream("numbers.dat");
    DataInputStream data = new DataInputStream(file);
    BufferedReader buffer = new BufferedReader(new InputStreamReader(data));
     String line = "";
        while((line=buffer.readLine())!=null)
        {
            System.out.println(line);
        }

        buffer.close();

它应该可以解决你的问题。我想

答案 1 :(得分:1)

在调用第二种方法时,oddFile()尝试在写入文件之前添加换行符\n。这会将所有奇数输入一个新行。

write2.write("\n");

从文件中检索数据时,使用条件为

的while循环
String s=null;
while((s=buffer.readLine())!=null)
{
   System.out.println(s);
}