在利用Java实现拷贝文件的时候,首先我们需要把拷贝这个动作解剖成两个动作。一:读取文件中的数据流;二:导入数据流。
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
/**
* 使用InputStream抽象类的子类FileInputStream类
* 从文件中读取流数据
*/
public class FileInputStreamDemo1 {
public static void test1(){
try{
FileInputStream myStream = new FileInputStream("src/a.txt");
//myStream用于存放数据流。
//new FileInputStreamh()后面接着是原文件名及其地址。
int a = 0;
while ((a=myStream.read())!=-1){
//返回值等于非-1进行循环,如果遇到-1则跳出循环
System.out.print((char)a);//逐个打印
}
myStream.close();
}catch(FileNotFoundException e){
e.printStackTrace();
}catch(IOException e){
e.printStackTrace();
}
}
public static void main(String[] args){
test1();
}
}
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
/**
* 使用OutputStream抽象类的子类FileOutputStream类
* 导入数据流在文件中
* @author PeicongHe
*
*/
public class Demo1 {
public static void test2(){
String myContent = "I Am A Good Man!!";
OutputStream os;
try {
os = new FileOutputStream("src/b.txt");//用于存放数据流
os.write(myContent.getBytes());//写入数据流
os.flush();//刷新
os.close();//关闭数据流
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void main(String[] args){
test2();
}
}
将这两个步骤结合在一起
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
public class CopyFile {
public static void copy(){
try{
FileInputStream myStream = new FileInputStream("src/1_suwu150.jpg");
OutputStream os = new FileOutputStream("hshs.jpg");
int a = 0;
while((a=myStream.read())!=-1){
System.out.println((char)a);
os.write(a);
}
System.out.println("复制成功!");
os.flush();
os.close();
myStream.close();
}catch(IOException e){
e.printStackTrace();
}
}
public static void main(String[] args){
copy();
}
}