import java.io.*;
import java.nio.*;
import java.nio.channels.*;
import java.security.SecureRandom;
public class SecureDelete {
public static void main(String[] args) throws IOException {
File file = new File(args[0]);
if (file.exists()) {
SecureRandom random = new SecureRandom();
RandomAccessFile raf = new RandomAccessFile(file, "rw");
FileChannel channel = raf.getChannel();
MappedByteBuffer buffer
= channel.map(FileChannel.MapMode.READ_WRITE, 0, raf.length());
// overwrite with zeros
while (buffer.hasRemaining()) {
buffer.put((byte) 0);
}
buffer.force();
buffer.rewind();
// overwrite with ones
while (buffer.hasRemaining()) {
buffer.put((byte) 0xFF);
}
buffer.force();
buffer.rewind();
// overwrite with random data; one byte at a time
byte[] data = new byte[1];
while (buffer.hasRemaining()) {
random.nextBytes(data);
buffer.put(data[0]);
}
buffer.force();
file.delete();
}
}
}
//该片段来自于http://www.codesnippet.cn/detail/03122012774.html
其中用到了NIO,其实就是用混乱的数据重新填充下文件
分享到:
相关推荐
java递归删除整个文件夹,可以文件夹中所有的文件和子文件夹
### Java中遍历某个目录下的所有文件及文件夹中的文件 在Java开发中,经常会遇到需要遍历指定目录及其子目录下所有文件的情况。本文将详细介绍如何使用Java标准库中的`java.io.File`类来实现这一功能。我们将通过一...
总之,Java结合ganymed-ssh2库,为开发者提供了强大的工具,使他们能够在安全的环境下与Linux服务器进行交互,实现文件的上传、下载、操作和删除,极大地提升了远程管理服务器的效率。在开发过程中,理解这些基本...
Java提供了丰富的API来处理文件系统相关的操作,包括读取、创建、删除文件以及遍历目录等。这里我们将详细讲解如何在Java中实现这个功能。 首先,你需要导入Java的`java.io`包,它包含了处理文件和输入/输出流的...
本文档将详细介绍一个基于Java的实用工具类`FtpClientUtil`,该类提供了一系列功能来与FTP服务器交互,包括连接到服务器、上传文件、下载文件、获取文件列表、删除文件和目录以及关闭连接等操作。 #### 二、`...
java 删除指定文件夹下所有文件,使用例子 DeleteFile.delAllFile(path); path的值是D:/profile/123/
在Java编程环境中,实现Windows文件系统的操作监控是一个有趣且实用的技术挑战。这涉及到对系统底层事件的捕获,通常需要借助于系统钩子(System Hooks)的概念。在Java中,虽然原生支持并不完善,但我们可以通过...
用java语言编写的ftp小工具,可以按指定时间监控ftp服务器,把服务器指定目录内新产生的文件或者文件夹下载到本地指定文件夹,下载后删除数据。 也可以监控本地文件夹,把文件夹内新产生的文件或者文件夹整体上传到...
此外,当某个服务器出现故障时,系统应能自动检测并重新分配该服务器上的文件块到其他健康节点,确保服务的连续性。 数据一致性是分布式系统必须面对的挑战之一。ctjdfs可能采用了诸如Paxos或Raft这样的分布式一致...
但是,在特定情况下,可能需要删除JAR内的某个文件,例如更新或优化应用的某些部分。 在描述中提到的博文链接指向了一个ITeye博客文章,遗憾的是,由于在当前环境下无法访问该链接,我们无法获取具体的操作步骤或...
Contineo3upgrade可能是指某个特定的Java开源文件管理系统版本升级过程。升级通常涉及以下步骤: 1. **备份**:在升级前,确保对现有系统进行完整备份,以防数据丢失。 2. **阅读升级指南**:了解新版本的改进、...
有时候,在删除某个文件时,可能会不小心将整个目录一起删除。在这种情况下,需要先尝试恢复整个目录。 1. **打开Eclipse或MyEclipse**:确保你已经启动了IDE。 2. **打开项目**:在工作台中找到并打开包含被误删...
这两个文件都是Java源代码文件,它们可能代表了某个项目的类定义。在处理这些文件时,如果你需要修改它们的后缀,可以按照上述步骤进行。例如,如果你想将所有`.java`文件转换为`.txt`文件,那么你可以遍历目录,对...
本篇文章将详细介绍如何使用 Java 实现删除 Excel 文件中的空行,这对于提高数据处理效率具有重要意义。 #### 一、准备工作 在开始编写代码之前,我们需要准备以下环境: - **Java 开发环境**:确保已经安装了 JDK ...
- **清理临时文件**: 文件上传完成后,确保删除任何临时文件以节省磁盘空间。 - **重命名上传文件**: 避免文件名冲突和潜在的安全风险,例如覆盖重要文件。 五、示例代码 这里给出一个使用Servlet API实现文件上传...
Java FTP操作文件主要涉及到Java对FTP(File Transfer Protocol)协议的支持,这通常通过第三方库来增强Java标准库的功能。在给定的描述中,开发者提到遇到了Java标准库在不同版本间实现差异的问题,因此选择了...
Java程序可以利用`diff`命令的输出或者直接使用SVN库提供的API来获取文件的差异。这些差异通常表示为一系列的插入、删除和替换操作。通过解析这些差异,我们可以统计出每行代码的增加和减少,从而得到修改的总行数。...
JAVA 修改类文件编译不生效的解决方案 在 Java 编程中,我们经常会定义一个常量类来管理项目中的常量值,例如: ```java public class AppConst { public static final String STR_CONST_1 = "String1"; public ...
在Java编程语言中,文件操作是一项基础且重要的任务,涵盖了文件的读取、写入、创建、删除等操作。在给定的标题“文件操作的JAVA源码”中,我们可以推测这是一个关于Java文件I/O(输入/输出)的示例项目,其中可能...