Java23-IO流拷贝文件到指定路径

一、主要知识点:

1. FileInputStream   FileOutputStream

2. BufferedInputStream   BufferedOutputStream

3.数据流分类:

流序列中的数据既可以是未经加工的原始二进制数据,也可以是经一定编码处理后符合某种格式规定的特定数据。因此Java中的流分为两种:
 1)  字节流:数据流中最小的数据单元是字节
 2)  字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。
4. IO体系

 

 

二、IO流拷贝文件到指定路径  测试代码:

package doudou;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;

public class test_file_demo1 {
    public static void main(String[] args) throws IOException {
        // 目的:控制台输入一个文件路径,拷贝该文件到指定路径
        // 思路:1.确定输入的是文件路径 而不是文件夹路径或者空 2.是文件的话,创建缓存输入输出流 3.读取文件并写入输出流
        Scanner sc = new Scanner(System.in);
        String path = sc.nextLine();
        String tarpath ="D:\\123\\a"  ;
        File file1 =new File(tarpath);
        if(!file1.exists()) {
            System.out.println("目标地址tarpath不存在");
            if(!file1.getParentFile().exists()) {
                file1.getParentFile().mkdir();
            }
            file1.createNewFile();     
        }
        
        if (path.isEmpty()) {
            System.out.println("请输入文件路径,如C:\\Users\\183\\Desktop\\2020-演讲稿.docx");
        } else {
            File file = new File(path);
            if (file.isFile()) {
                System.out.println("输入的是文件");

                BufferedInputStream bis = new BufferedInputStream(new FileInputStream(path));
                BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(tarpath));
                int b;
                while ((b = bis.read()) != -1) {
                    bos.write(b);
                }
                bis.close();
                bos.close();

            } else if (file.isDirectory()) {
                System.out.println("输入的是文件夹路径,请重新输入 文件路径");
            }
        }
    }

}

 

 

 图片来源:https://blog.csdn.net/hguisu/article/details/7418161   侵权删

posted @ 2020-09-21 22:55  eosclover  Views(975)  Comments(0Edit  收藏  举报