第一次用自己学的Java解决实际问题,纪念一下!设计i/o,File的知识!

2024-06-19 16:58

本文主要是介绍第一次用自己学的Java解决实际问题,纪念一下!设计i/o,File的知识!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!


<span style="background-color: rgb(255, 255, 255);">              <span style="font-size:18px;"><strong>程序功能概述:</strong><span style="font-size:14px;">最近在学校档案馆找了一份兼职,主要的工作就是帮他们上传资料,第一天丧尸的馆长给了我三个文件夹每个文件夹下面有一千多个子文件夹,每个子文件夹为一个主题,代表一个主题的子文件下面有几个网页或文档。在传的时候有的需要传............这就不再赘述了。程序功能就是:这里有一个文件路径a,有一个文件路径b,有一个文本文件c.txt。需要把c.txt里边有的主题在文件路径a(肯定有)下面找出来放到空路径b下边。</span></span></span>

                              程序代码介绍:共三个源文件:com.john.file.Copyfile.java

                                                                  com.john.file.Readtxt.java

                                                                  com.john.file.Main.java

 

                                                       Copyfile.java:实现将一个文件夹下面的所有文件复制到另外一个文件下面

                                          Readtxt.java:实现将规范的文本中存放的文件夹名字读出来

                                          Main.java:主函数所在class

            

 

                                代码:

//Copyfile.java
package com.john.file;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.io.PrintStream;public class Copyfile {public void copyFolder(String oldPath, String newPath) {try {(new File(newPath)).mkdirs(); // 如果文件夹不存在 则建立新文件夹File a = new File(oldPath);String[] file = a.list();File temp = null;for (int i = 0; i < file.length; i++) {if (oldPath.endsWith(File.separator)) {temp = new File(oldPath + file[i]);} else {temp = new File(oldPath + File.separator + file[i]);}if (temp.isFile()) {FileInputStream input = new FileInputStream(temp);FileOutputStream output = new FileOutputStream(newPath+ "/" + (temp.getName()).toString());byte[] b = new byte[1024 * 5];int len;while ((len = input.read(b)) != -1) {output.write(b, 0, len);}output.flush();output.close();input.close();}if (temp.isDirectory()) {// 如果是子文件夹copyFolder(oldPath + "/" + file[i], newPath + "/" + file[i]);}}} catch (Exception e) {System.out.println("复制整个文件夹内容操作出错");e.printStackTrace();}}public static void main(String[] args) {Copyfile test = new Copyfile();test.copyFolder("E:\\from", "F:\\to");}
}
//Readtxt.java
package com.john.file;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.InputStreamReader;
import java.util.ArrayList;public class Readtxt {public ArrayList<String> read(String path){FileInputStream fr;String name;ArrayList<String> names = new ArrayList<String>();try {fr = new FileInputStream(new File(path));BufferedReader br = new BufferedReader(new InputStreamReader(fr,"utf-8"));if(br.ready()){while((name = br.readLine()) != null){names.add(name);}}} catch (Exception e) {e.printStackTrace();}return names;}
}


 

package com.john.file;
//Main.javaimport java.util.ArrayList;
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.println("please input from path:");String frompath = scanner.nextLine();System.out.println("please input to path");String topath = scanner.nextLine();System.out.println("please input the txtpath:");String txtpath = scanner.nextLine();ArrayList<String> names = new Readtxt().read(txtpath);for(int i=0;i<names.size();i++){new Copyfile().copyFolder(frompath+"\\"+names.get(i),topath+'\\'+names.get(i));System.out.println(names.get(i));}}}



 

 

这篇关于第一次用自己学的Java解决实际问题,纪念一下!设计i/o,File的知识!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1075609

相关文章

一个Java的main方法在JVM中的执行流程示例详解

《一个Java的main方法在JVM中的执行流程示例详解》main方法是Java程序的入口点,程序从这里开始执行,:本文主要介绍一个Java的main方法在JVM中执行流程的相关资料,文中通过代码... 目录第一阶段:加载 (Loading)第二阶段:链接 (Linking)第三阶段:初始化 (Initia

java读取excel文件为base64实现方式

《java读取excel文件为base64实现方式》文章介绍使用ApachePOI和EasyExcel处理Excel文件并转换为Base64的方法,强调EasyExcel适合大文件且内存占用低,需注意... 目录使用 Apache POI 读取 Excel 并转换为 Base64使用 EasyExcel 处

java时区时间转为UTC的代码示例和详细解释

《java时区时间转为UTC的代码示例和详细解释》作为一名经验丰富的开发者,我经常被问到如何将Java中的时间转换为UTC时间,:本文主要介绍java时区时间转为UTC的代码示例和详细解释,文中通... 目录前言步骤一:导入必要的Java包步骤二:获取指定时区的时间步骤三:将指定时区的时间转换为UTC时间步

Java 日志中 Marker 的使用示例详解

《Java日志中Marker的使用示例详解》Marker是SLF4J(以及Logback、Log4j2)提供的一个接口,它本质上是一个命名对象,你可以把它想象成一个可以附加到日志语句上的标签或戳... 目录什么是Marker?为什么使用Markejavascriptr?1. 精细化的过滤2. 触发特定操作3

深入浅出Java中的Happens-Before核心规则

《深入浅出Java中的Happens-Before核心规则》本文解析Java内存模型中的Happens-Before原则,解释其定义、核心规则及实际应用,帮助理解多线程可见性与有序性问题,掌握并发编程... 目录前言一、Happens-Before是什么?为什么需要它?1.1 从一个问题说起1.2 Haht

JDK8(Java Development kit)的安装与配置全过程

《JDK8(JavaDevelopmentkit)的安装与配置全过程》文章简要介绍了Java的核心特点(如跨平台、JVM机制)及JDK/JRE的区别,重点讲解了如何通过配置环境变量(PATH和JA... 目录Java特点JDKJREJDK的下载,安装配置环境变量总结Java特点说起 Java,大家肯定都

Spring定时任务之fixedRateString的实现示例

《Spring定时任务之fixedRateString的实现示例》本文主要介绍了Spring定时任务之fixedRateString的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录从毫秒到 Duration:为何要改变?核心:Java.time.Duration.parse

Java 中 Optional 的用法及最佳实践

《Java中Optional的用法及最佳实践》在Java开发中,空指针异常(NullPointerException)是开发者最常遇到的问题之一,本篇文章将详细讲解Optional的用法、常用方... 目录前言1. 什么是 Optional?主要特性:2. Optional 的基本用法2.1 创建 Opti

docker编写java的jar完整步骤记录

《docker编写java的jar完整步骤记录》在平常的开发工作中,我们经常需要部署项目,开发测试完成后,最关键的一步就是部署,:本文主要介绍docker编写java的jar的相关资料,文中通过代... 目录all-docker/生成Docker打包部署文件配置服务A的Dockerfile (a/Docke

Java中实现对象的拷贝案例讲解

《Java中实现对象的拷贝案例讲解》Java对象拷贝分为浅拷贝(复制值及引用地址)和深拷贝(递归复制所有引用对象),常用方法包括Object.clone()、序列化及JSON转换,需处理循环引用问题,... 目录对象的拷贝简介浅拷贝和深拷贝浅拷贝深拷贝深拷贝和循环引用总结对象的拷贝简介对象的拷贝,把一个