四、java IO--使用字节流拷贝文件

java

import java.io.File;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream

/**

* 文件的拷贝

* 1、建立连接

* 2、选择流

* 文件输入流 InputStream FileInputStream

文件输出流 OutputStream FileOutputStream

* 3、操作:

* 循环{读取+写出} + 强制刷新

* 4、释放资源

* @author baba

*

*/

public class CopyFile {

public static void main(String[] args) {

String srcPath = "F:/read.txt";

String destPath = "F:/write.txt";

copyFile(new File(srcPath),new File(destPath));

}

public static void copyFile(File src,File dest){

if(! src.isFile()){ //当不是文件或者为null

System.out.println("只能拷贝文件");

try {

throw new IOException("只能拷贝文件");

} catch (IOException e) {

e.printStackTrace();

}

}

if(dest.isDirectory()){ //不能建立于文件夹同名的文件

System.out.println(dest.getAbsolutePath()+"不能建立于文件夹同名的文件");

try {

throw new IOException(dest.getAbsolutePath()+"不能建立于文件夹同名的文件");

} catch (IOException e) {

e.printStackTrace();

}

}

//1、建立连接

InputStream is =null;

OutputStream os = null;

try {

//2、选择流

is = new FileInputStream(src);

os = new FileOutputStream(dest);

//3、操作: 循环{读取+写出} + 强制刷新

byte[] inData = new byte[1024];

int len = 0;

while(-1 != (len = is.read(inData))){ //读取文件

os.write(inData, 0, len); //每次以inData大小读取数据

}

os.flush(); //将存储在管道中的数据强制刷新出去

} catch (FileNotFoundException e) {

e.printStackTrace();

System.out.println("文件不存在!");

} catch (IOException e) {

e.printStackTrace();

System.out.println("读取文件失败!");

}finally {

if (os != null)

try {

os.close();

} catch (IOException e) {

e.printStackTrace();

}

if (is != null)

try {

is.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

以上是 四、java IO--使用字节流拷贝文件 的全部内容, 来源链接: utcz.com/z/393857.html

回到顶部