public void showInfos() {
try {
OutputStream outputStream = new FileOutputStream("C:\\abc.txt");
//MyPrintStream myPrintStream = new MyPrintStream(outputStream, text);
String infos = "\n显示信息";
System.out.println(infos);
outputStream.write(infos.getBytes(), 0, infos.getBytes().length);
//myPrintStream.append(infos);
outputStream.flush();
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
在上面代码中执行数次后,在abc.txt文件中为什么只有“ 显示信息”这一行信息,不知道原因主要是对输入输出流不是很熟悉,怎样才能多次的将要输出的信息输出到abc.txt文件中。
boolean append参数是true就可以
OutputStream outputStream = new FileOutputStream("C:\\abc.txt",true);
boolean append)
throws FileNotFoundException创建一个向具有指定 name 的文件中写入数据的输出文件流。如果第二个参数为 true,则将字节写入文件末尾处,而不是写入文件开始处。创建一个新 FileDescriptor 对象来表示此文件连接。
首先,如果有安全管理器,则用 name 作为参数调用 checkWrite 方法。 如果该文件存在,但它是一个目录,而不是一个常规文件;或者该文件不存在,但无法创建它;抑或因为其他某些原因而无法打开它,则抛出 FileNotFoundException。
参数:
name - 与系统有关的文件名
append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处 看看API就知道了
OutputStream outputStream = new FileOutputStream("C:\\abc.txt"); 这只会覆盖原有的内容
OutputStream outputStream = new FileOutputStream("C:\\abc.txt",true); 试试这个
你要在文件中输入换行符,就这样写
outputStream.newLine()
要输出文本文件宜用FileWriter虽然文本也可以看成是字节流,但需要多转换一次,比如换行就是写入"\r\n".getBytes()
FileWriter可以直接write(String)为了不覆盖原文,可以用FileWriter(filename,true)来创建它