zoukankan      html  css  js  c++  java
  • 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   侵权删

  • 相关阅读:
    sql server 删除重复数据新思路
    sqlserver 迁移 mysql
    ASP.NET Web deployment task failed. 请与服务器管理员联系,检查授权和委派设置 部署任务失败的解决方案
    数据库交互之减少IO次数
    sqlserver 安全设置
    windows设置相对路径的快捷方式
    利用SignalR实现实时推送信息
    image magick 备忘
    dotnetCore开发中遇到的一些问题
    “NETSDK1061: 项目是使用 Microsoft.NETCore.App 版本 2.1.14 还原的, 但使用当前设置, 将改用版本 2.1.0。”的处理方法
  • 原文地址:https://www.cnblogs.com/eosclover/p/13709282.html
Copyright © 2011-2022 走看看