代码如图
这是个简单的自我复制文本的程序
但在源文件超过8k后就开始死循环了,不断自动复制一直到磁盘溢出
我翻了下源码没找到这8k限制是出在哪的
有大个子知道原因吗?
读写不要操作同一个文件。
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
File file = new File("xx.txt");
FileWriter fw = new FileWriter(new File("xx2.txt"),true);
FileReader fr= new FileReader(file);
char[] buf = new char[50];
int Len;
while((Len= fr.read(buf))!=-1){
fw.write(buf,0,Len);
}
fw.close();
fr.close();
System.out.println("写入成功");
}
}
1、一般文件有读写锁控制,读的时候不允许编辑,比如:文件使用word打开,这时给该文件重命名时就会弹出:“操作无法完成,因为文件已经在XX打开。请关闭该文件并重试” 的字样,就是有读写锁控制。
2、题主的问题也是这个道理类似。
3、相关IO经典总结:IO流缓冲字节流缓冲字符流等流经典代码示例