API中如是写:
FileOutputStream(String name, boolean append)
创建一个向具有指定 name 的文件中写入数据的输出文件流。
append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处
但是为什么这样连着写两个write时追加输出samuelsonsamuelson;
而不是samuelson呢?package com.justdoit.io;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;public class TestTranForm1 {
public void testAppend(){
File file = new File("D:\\content.txt");
try {
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write("samuelson");
osw.write("samuelson");
osw.flush();
FileInputStream fis = new FileInputStream(file);
int con = 0;
while((con = fis.read())!=-1){
System.out.print((char)con);
}
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
TestTranForm1 ttf = new TestTranForm1();
ttf.testAppend();
}
}
FileOutputStream(String name, boolean append)
创建一个向具有指定 name 的文件中写入数据的输出文件流。
append - 如果为 true,则将字节写入文件末尾处,而不是写入文件开始处
但是为什么这样连着写两个write时追加输出samuelsonsamuelson;
而不是samuelson呢?package com.justdoit.io;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;public class TestTranForm1 {
public void testAppend(){
File file = new File("D:\\content.txt");
try {
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write("samuelson");
osw.write("samuelson");
osw.flush();
FileInputStream fis = new FileInputStream(file);
int con = 0;
while((con = fis.read())!=-1){
System.out.print((char)con);
}
fis.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
TestTranForm1 ttf = new TestTranForm1();
ttf.testAppend();
}
}
同一个 file (File file = new File("D:\\content.txt");)对象.
[code=Java
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write("samuelson");
osw.close();
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write("samuelson");
[/code]
这样写就应该不是追加了,覆盖原来内容写进去了。
楼上正解
楼主怎么不问问为什么程序运行两次都只有两个sim而不是四个sim你再把参数改成true,然后程序多运行几次看看
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write("samuelson");
osw.close();
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write("samuelson");
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write("samuelson");
osw.close();
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write("samuelson");
FileOutputStream fos = new FileOutputStream(file);
OutputStreamWriter osw = new OutputStreamWriter(fos);
osw.write("samuelson"
osw.close();
fos = new FileOutputStream(file);
osw = new OutputStreamWriter(fos);
osw.write("samuelson");