JAVA IO流 --输入输出流使用的是同一个文件时,比如对某个文件里的信息去重。
File f=new File("file/copy.txt");//目标文件
FileInputStream in=new FileInputStream(f);
FileOutputStream out=new FileOutputStream(f);
问题:
会遇到 无法正常读写文件,源文件的信息全部丢失。变成空文件。但是程序编译不报错。
这是因为:
输入流未关闭的情况下,输出流操作同一路径文件,会造成冲突,输入流会认为该文件不存在并重新创建同名文件覆盖原文件,而后输入流实际读取的是一个空文件,那么输出流写入的内容也为空,最后造成文件内容置空的现象。
可将 :
输出流的声明 放在 输入流操作结束之后的位置
如:
private static void hashcopy() throws IOException {
File f=new File("file/copy.txt");//目标文件
FileInputStream in=new FileInputStream(f);
// FileOutputStream out=new FileOutp