[AppleScript] 纯文本查看 复制代码
package com.heima.test;
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.ArrayList;
import java.util.List;
import java.util.Scanner;
//文件过滤筛选拷贝:把指定目录下(不包含子目录)的所有图片,复制到另一个指定目录下(使用文件过滤器来过滤图片)
public class Lianxi2 {
public static void main(String[] args) throws IOException {
System.out.println("请输入指定复制源文件夹路径:");
File file1 = getFile();
System.out.println("请输入指定存放文件夹路径:");
File file2 = getFile();
//用一个集合来存放符合拷贝文件的绝对路径
List<String> list = new ArrayList<>();
//寻找所有符合条件的文件并将路径存入集合
seek(file1,list);
//从集合读取文件路径,复制到新的文件夹路径
copy(file2,list);
}
private static void copy(File file2, List<String> list) throws IOException {
File[] filelist = file2.listFiles();
if (filelist != null) {
for (String string : list) {
BufferedInputStream bts = new BufferedInputStream(new FileInputStream(string));
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file2));
int x;
while((x = bts.read()) != -1) {
bos.write(x);
bts.close();
bos.close();
}
}
}
}
private static void seek(File file1, List<String> list) {
File[] filelist = file1.listFiles();
if (filelist != null) {
for (File file : filelist) {
if (file.isFile() && file.getName().endsWith("jpg")) {
list.add(file.getAbsolutePath());
}else if (file.isDirectory()) {
seek(file,list);
}
}
}else{
System.out.println("文件夹下为空,请检查后输入!");
}
}
//测试样本路径file1 G:\图片\地图
//测试接收路径file2 H:\新建文件夹
private static File getFile() {
Scanner sc = new Scanner(System.in);
while(true) {
String line = sc.nextLine();
File file = new File(line);
if (!file.isDirectory()) {
System.out.println("非文件夹路径,请重新输入:");
}else{
System.out.println("文件夹路径输入成功!");
return file;
}
}
}
}
[AppleScript] 纯文本查看 复制代码
package Test;
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.ArrayList;
import java.util.List;
import java.util.Scanner;
//文件过滤筛选拷贝:把指定目录下(不包含子目录)的所有图片,复制到另一个指定目录下(使用文件过滤器来过滤图片)
public class Tr {
public static void main(String[] args) throws IOException {
System.out.println("请输入指定复制源文件夹路径:");
File file1 = getFile();
System.out.println("请输入指定存放文件夹路径:");
File file2 = getFile();
//用一个集合来存放符合拷贝文件的File对象
List<File> list = new ArrayList<>();
//寻找所有符合条件的文件并将File对象存入集合
seek(file1,list);
//从集合读取文件路径,复制到新的文件夹路径
copy(file2,list);
}
private static void copy(File file2, List<File> list) throws IOException {
//这里我们需要判断的不是file2是否为空,而是我们是否有需要拷贝的文件;即list是否为空
if (!list.isEmpty()) {
//在外部创建变量;在内部创建对象,可以在拷贝完成之后一次性关流;
BufferedOutputStream bos = null;
BufferedInputStream bts = null;
for (File file : list) {
int x;
//读取的是文件对象
bts = new BufferedInputStream(new FileInputStream(file));
//写出的也是文件对象,但是通过得到目标文件夹的全路径名和被拷贝文件的文件名中间加上'\\'组成最终的拷贝路径
bos = new BufferedOutputStream(new FileOutputStream(file2.getAbsolutePath()+"\\"+file.getName()));
while((x = bts.read()) != -1) {
bos.write(x);
}
}
bts.close();
bos.close();
}
}
private static void seek(File file1, List<File> list) {
File[] filelist = file1.listFiles();
if (filelist != null) {
for (File file : filelist) {
if (file.isFile() && file.getName().endsWith("jpg")) {
list.add(file);
}else if (file.isDirectory()) {
seek(file,list);
}
}
}else{
System.out.println("文件夹下为空,请检查后输入!");
}
}
//测试样本路径file1 G:\图片\地图
//测试接收路径file2 H:\新建文件夹
@SuppressWarnings("resource")
private static File getFile() {
Scanner sc = new Scanner(System.in);
while(true) {
String line = sc.nextLine();
File file = new File(line);
if (!file.isDirectory()) {
System.out.println("非文件夹路径,请重新输入:");
}else{
System.out.println("文件夹路径输入成功!");
return file;
}
}
}
}