JAVA编程问题(BufferedWriter)

2025-02-25 06:06:24
推荐回答(4个)
回答1:

如果单纯的原封不动地复制文件的话,直接用InputStream和OutputStream就好了。
这两个类才是面向字节流的。
可以原封不动的复制。
用buffered包一下可以提高效率。
如以下代码可复制文件:
InputStream input = new FileInputStream(sourcefile);

FileOutputStream output = new FileOutputStream(destfile);

BufferedInputStream bis = new BufferedInputStream(input);

BufferedOutputStream bos = new BufferedOutputStream(output);

byte[] byt = new byte[1024];

while (bis.read(byt) != -1) {

bos.write(byt, 0, byt.length);

bos.flush();
}

try {

input.close();
output.close();
bis.close();
bos.close();

} catch (Exception e) {
}

如果用追加的方式有三种方法
public static void method1(String file, String conent) {
BufferedWriter out = null;
try {
out = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream(file, true)));
out.write(conent);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}

public static void method2(String fileName, String content) {
try {
// 打开一个写文件器,构造函数中的第二个参数true表示以追加形式写文件
FileWriter writer = new FileWriter(fileName, true);
writer.write(content);
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
}

public static void method3(String fileName, String content) {
try {
// 打开一个随机访问文件流,按读写方式
RandomAccessFile randomFile = new RandomAccessFile(fileName, "rw");
// 文件长度,字节数
long fileLength = randomFile.length();
// 将写文件指针移到文件尾。
randomFile.seek(fileLength);
randomFile.writeBytes(content);
randomFile.close();
} catch (IOException e) {
e.printStackTrace();
}
}

回答2:

不要用BufferedWriter 换 FileWriter,他的构造函数有一个参数是boolean append,为真就是接着写进去

回答3:

new BufferedWriter(new OutputStreamWriter( new FileOutputStream ("文件名",true); true表示追加

回答4:

.append