用Java写并逐句解释:修改程序CopyFileStream.java,要求利用main方法的参数,输入得到输入流和输出流文件名。CopyFileStream.java:import java.io.*; public class CopyFileStream{ public static void main(String[] args) throws IOException{ //�����ļ������sourceout������Դ�ļ� FileOutputStream sourceout = new FileOutputStream("source.txt"); sourceout.write('H'); sourceout.write(69); sourceout.write(76); sourceout.write('L'); sourceout.write('O'); sourceout.write('!'); // �ر������� sourceout.close(); FileInputStream sourcein = new FileInputStream("source.txt"); FileOutputStream targeout = new FileOutputStream("targe.txt"); // ʵ���ļ����� while(sourcein.available() > 0) targeout.write((byte)sourcein.read()); // �ر������� sourcein.close(); targeout.close(); } }
时间: 2024-02-15 21:03:23 浏览: 64
CFAnaylize.zip_编译器/解释器_Java_
这是一个 Java 程序,名为 CopyFileStream,它的作用是将一个文件中的内容复制到另一个文件中。现在需要修改这个程序,使其能够从命令行接受输入流和输出流的文件名,并将输入流中的内容复制到输出流中。
修改后的程序如下:
```
import java.io.*;
public class CopyFileStream {
public static void main(String[] args) throws IOException {
// 根据命令行参数打开输入流和输出流
FileInputStream sourcein = new FileInputStream(args[0]);
FileOutputStream targeout = new FileOutputStream(args[1]);
// 实际的文件复制操作
while (sourcein.available() > 0)
targeout.write((byte)sourcein.read());
// 关闭输入流和输出流
sourcein.close();
targeout.close();
}
}
```
我们对代码进行了如下修改:
1. 在程序的 main 方法中,我们使用命令行参数 args 来获取输入流和输出流的文件名。这里假定第一个参数是输入流文件名,第二个参数是输出流文件名。
2. 在程序中,我们用 FileInputStream 和 FileOutputStream 类来创建输入流和输出流对象。
3. 在 while 循环中,我们首先检查输入流中是否还有可读的字节,如果有,就将它们读入一个 byte 数组中,然后再将该数组中的字节写入输出流中。
4. 最后,我们关闭输入流和输出流。
这样,我们就完成了对 CopyFileStream.java 程序的修改,使其能够接受命令行参数,并将输入流中的内容复制到输出流中。
阅读全文