【发布时间】:2014-11-24 14:43:28
【问题描述】:
我一直坚持使用 File、BufferedReader 和 BufferedWriter 写入特定行。
我想要实现的是让我的文本文件总行数 (-3) 并写入该行。
目前它只是擦除整个文件,没有写入任何内容。
我在做什么的图片:
(在图片中)第 25 行为空白,第 26 行不包含文档。它包含“}”
&我的代码:
package com.tests.writer;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import javax.swing.JFrame;
public class NewWriter {
static Integer tableCount;
static File file;
static FileWriter fw;
static FileReader fr;
static BufferedWriter bw;
static BufferedReader br;
public static void main(String[] args) {
JFrame frame = new JFrame("Test {New Writer}");
frame.setBounds(500, 500, 500, 500);
frame.setVisible(true);
frame.setResizable(false);
frame.setAutoRequestFocus(true);
try {
startApplication();
} catch (IOException e) {
e.printStackTrace();
}
}
private static void startApplication () throws IOException {
writeToFile ();
}
private static void writeToFile () throws IOException {
Integer lineTCount = 0;
file = new File("Tables.txt");
if (file.exists()) {
fw = new FileWriter(file.getAbsolutePath(), true);
fr = new FileReader(file.getAbsolutePath());
bw = new BufferedWriter(fw);
br = new BufferedReader(fr);
for (String line = br.readLine(); line != null; line = br.readLine()) {
lineTCount++;
System.out.println(lineTCount);
}
System.out.println(lineTCount);
bw.write("Test Text to insert");
System.out.println("done");
System.exit(0);
} else {
file.createNewFile();
System.out.println("New File = " + file.toString());
writeToFile();
}
}
}
如果有更简单的方法,我对所有想法持开放态度,因为我仍然不熟悉 Java.io
&如果有人能告诉我这是正确的。我可能必须将整个文件添加到列表中,添加新文本然后重新编写文件。
【问题讨论】:
-
为什么你同时使用时间 br 以及你为写线所用的 bw 呢。
标签: java bufferedreader bufferedwriter