我正在尝试在文本文件中添加值。它的工作良好,输出在日食中很好。 但是当我看到文件中的值时,我得到了一个直线模式:2526272829。
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
public class FileDemo {
public static void main(String[] args) throws IOException {
BufferedReader bfr;
String line;
bfr=new BufferedReader(new InputStreamReader(System.in));
String fileName=bfr.readLine();
File file=new File(fileName);
if(!file.exists()){
file.createNewFile();
}
try{
bfr=new BufferedReader(new FileReader(file));
while((line=bfr.readLine())!=null){
System.out.println(line);
}
FileWriter fw=new FileWriter(file,true);
for(int i=25;i<30;i++){
fw.append(String.valueOf(i));
}
while((line=bfr.readLine())!=null){
System.out.println(line);
}
bfr.close();
fw.close();
}catch(FileNotFoundException fex){
fex.printStackTrace();
}
}
}
我还想了解bufferedReader存储的工作原理,请提供一些链接。
答案 0 :(得分:1)
试试这个。手动添加新行..
fw.append(String.valueOf(i)+"\n");
答案 1 :(得分:1)
您需要在for循环中添加换行符:
FileWriter fw=new FileWriter(file,true);
for(int i=25;i<30;i++){
fw.append(String.valueOf(i)+"\n"); //Here I've made the small correction
}
每次追加时都会在新行上写入。我假设这是你想要的输出。
有关bufferedReader信息,您可以在此处查看更多信息:
http://docs.oracle.com/javase/7/docs/api/java/io/BufferedReader.html
答案 2 :(得分:0)
在每次迭代时将新行添加到FileWriter,但是做得正确,不要连接字符串。
FileWriter fw=new FileWriter(file,true);
for(int i=25;i<30;i++){
fw.append(String.valueOf(i));
fw.append("\n");
}