我正在为我们读取和写入文件的类做一个赋值,它具有从一到一百的偶数和奇数。该文件必须读写奇数和偶数的实例。我得到的文件输出偶数和奇数,但我的问题是每个都显示在控制台中的单独行。一切都打印到一行。很抱歉,如果这可能是重复发布,但我已尝试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();
}
}
答案 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);
}