这个问题不是具体问题,而是一个更普遍的问题。对于读取文件,我知道您可以使用扫描仪并阅读它然后打印它。然而,读取文件然后以新格式打印,如双倍空格,缩进,基本上任何间距问题,是否也被认为是阅读它还是写它?根据我对老师教给我的东西的理解,写作会覆盖原始文件并替换它。另外如何使用PrintWriter命令?我以前从未在课堂上看过这个,也没有在我的教科书中读过这本书,但根据老师的说法,这是我的考试。有人可以给出解释和一个例子吗?
我在写这个网站http://www.caveofprogramming.com/frontpage/articles/java/java-file-reading-and-writing-files-in-java/时写了文件,但它使用了FileWriter,我假设它取代了扫描仪?是吗?
答案 0 :(得分:1)
在java中读取和写入文件都是关于使用流和流可以是二进制或顺序的。
中提供了不同的类java.io
包和这些类在不同的场景中使用。例如,使用二进制流您可能需要一些特殊功能。 PrintWriter类用于将格式化文本写入文本输出流,如PrintWriter
所述如果您想覆盖现有文件或将数据附加到现有文件,则可以选择它。
这里是将数据写入文件的简单代码。您可以附加或覆盖现有文本
import java.io.FileWriter;
import java.io.PrintWriter;
public class Main {
public static void main(String[] args) throws Exception {
String filename = "fileName.txt";
String[] linesToWrite = new String[] { "a", "b" };
boolean appendToFile = true;
PrintWriter pw = null;
if (appendToFile) {
// if you append data to file then pass 'true' to FileWriter else pass false
// PrintWriter needs an object of Writer type so we pass an anonymous object of
// FileWriter to PrintWriter constructor
pw = new PrintWriter(new FileWriter(filename, true));
} else {
pw = new PrintWriter(new FileWriter(filename));
// pw = new PrintWriter(new FileWriter(filename, false));
}
for (int i = 0; i < linesToWrite.length; i++) {
pw.println(linesToWrite[i]);
}
pw.flush();
pw.close();
}
}