一、主要知识点:
1. FileInputStream FileOutputStream
2. BufferedInputStream BufferedOutputStream
3.数据流分类:
流序列中的数据既可以是未经加工的原始二进制数据,也可以是经一定编码处理后符合某种格式规定的特定数据。因此Java中的流分为两种:
1) 字节流:数据流中最小的数据单元是字节
2) 字符流:数据流中最小的数据单元是字符, Java中的字符是Unicode编码,一个字符占用两个字节。
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 侵权删