题目.编写java程序,模仿将D盘中demo.txt文件剪切到D盘temp文件夹中.
package IOFile.File001; // 定义了包名为IOFile.File001
import java.io.FileInputStream; // 导入文件输入流类
import java.io.FileNotFoundException; // 导入文件未找到异常类
import java.io.FileOutputStream; // 导入文件输出流类
import java.io.IOException; // 导入输入输出异常类
public class FileTemp { // 定义名为FileTemp的类
public static void main(String[] args) throws IOException {
FileInputStream inputStream = new FileInputStream("D:/Demo.txt");
// 创建文件输入流,从Demo.txt读取数据
FileOutputStream outputStream = new FileOutputStream("E:/Temp.txt");
// 创建文件输出流,写入数据到Temp.txt
int intex = 0; // 声明一个变量用于存储读取的字节
while ((intex = inputStream.read()) != -1) { // 循环读取文件中的字节,直到文件结束
System.out.println(intex); // 将读取的字节打印到控制台
outputStream.write(intex); // 将读取的字节写入到输出流,实现文件复制
}
inputStream.close(); // 关闭输入流
outputStream.close(); // 关闭输出流
}
}
代码解释
主要功能在main
方法中实现。首先创建了一个文件输入流FileInputStream
,用于从指定路径的文件"D:/Demo.txt"
读取数据,再创建了一个文件输出流FileOutputStream
,用于将数据写入到另一个指定路径的文件"E:/Temp.txt"
。
接下来是一个while循环,它会不断地从输入流中读取字节,直到文件末尾(read()
方法返回-1)。在循环内部,每次读取一个字节,将其打印到控制台并写入到输出流中,从而实现文件内容的复制。
最后,要关闭了输入流和输出流,释放资源,如果不关闭此通道就会一直占用着可能会造成下面三种情况
如果不关闭输入流和输出流的通道,可能会导致以下问题:
1. 资源泄漏:打开的文件句柄会一直保持打开状态,这会占用系统资源。在处理大量文件或长时间运行的程序中,资源泄漏可能导致系统性能下降甚至耗尽系统资源。
2. 数据丢失:当程序结束时,尚未写入磁盘的数据可能会丢失,因为缓冲区中的数据尚未刷新到磁盘上。如果没有调用`close()`方法关闭输出流,可能会导致最后一部分数据未能完全写入目标文件。
3. 文件锁定:在某些操作系统中,如果未正确关闭文件流,可能会导致文件被锁定,从而阻止其他程序对该文件的访问。
综上所述,关闭输入流和输出流是十分重要的,以释放资源并确保数据完整性和文件的正常访问。