根源之外的Java文件
时间: 2025-04-22 11:44:58 浏览: 20
### Java 文件操作处理方法
#### 文件重命名
在 Java 中,自 JDK 1.7 起引入了一个简便的方法来对文件进行重命名操作。此功能通过 `java.nio.file.Files` 类中的静态方法 `move()` 实现,并接受两个参数:源路径和目标路径。为了捕获并处理可能发生的异常,如文件不存在或权限不足的情况,应当使用 try-catch 结构包裹调用语句[^1]。
```java
import java.io.IOException;
import java.nio.file.*;
public class FileRenameExample {
public static void main(String[] args) throws IOException {
Path source = Paths.get("oldname.txt");
Path destination = Paths.get("newname.txt");
try {
Files.move(source, destination, StandardCopyOption.REPLACE_EXISTING);
System.out.println("File renamed successfully.");
} catch (IOException e) {
System.err.println("Failed to rename file: " + e.getMessage());
}
}
}
```
#### 文件上传
对于 Web 应用程序而言,支持用户上传文件是一项常见需求。下面是一个简单的实现方案概述:
- 接收来自客户端的 multipart/form-data 请求;
- 验证接收到的数据流是否有效(即非空),并向客户端反馈适当的信息;
- 使用 UUID 和原始扩展名为基础构建唯一的文件名称;
- 创建必要的父级目录结构以存储新文件;
- 利用输入输出流技术完成实际数据传输过程;最后更新数据库记录或其他业务逻辑[^2]。
```java
import org.springframework.web.multipart.MultipartFile;
// 假设这是一个Spring MVC控制器的一部分...
@RequestMapping(value="/upload", method=RequestMethod.POST)
public ResponseEntity<String> handleFileUpload(@RequestParam("file") MultipartFile file){
if(file.isEmpty()){
return new ResponseEntity<>("文件不能为空", HttpStatus.BAD_REQUEST);
}
String originalFilename = file.getOriginalFilename();
String uuidPrefix = UUID.randomUUID().toString() + "-";
int lastDotIndex = originalFilename.lastIndexOf('.');
String extension = "";
if(lastDotIndex != -1 && lastDotIndex < originalFilename.length()-1){
extension = originalFilename.substring(lastDotIndex);
}
String uniqueFileName = uuidPrefix + originalFilename.replaceFirst("[.][^.]+$", "") + extension;
// ...其余代码省略...
return new ResponseEntity<>("成功上传 '" + uniqueFileName + "'", HttpStatus.OK);
}
```
#### 文本文件转换成二进制表示形式
当涉及到读取文本文件并将其中的内容编码为字节数组时,可以采用如下方式来进行转换工作。这里展示了一种逐字符解析的方式,最终得到的是每个字符对应的 ASCII 或 Unicode 编码值所构成的一系列整数。这些数值随后被进一步转化为固定长度的字符串格式以便于观察[^3]。
```java
import java.io.*;
import java.util.Arrays;
public class TextToBinaryConverter {
private static final String INPUT_FILE_PATH = "input.txt";
private static final String OUTPUT_BINARY_STRING = "%08d";
public static void main(String[] args) throws FileNotFoundException {
FileInputStream fis = null;
StringBuilder binaryOutputBuilder = new StringBuilder();
try{
fis = new FileInputStream(INPUT_FILE_PATH);
byte[] buffer = new byte[fis.available()];
while(fis.read(buffer)!=-1){
for(byte b : buffer){
binaryOutputBuilder.append(
String.format(OUTPUT_BINARY_STRING,
Integer.parseInt(Integer.toBinaryString(0xff & b))
)
).append(' ');
}
}
System.out.print(binaryOutputBuilder.toString());
}catch(IOException ex){
throw new RuntimeException(ex);
}finally{
if(fis!=null){
try{fis.close();}catch(Exception ignored){}
}
}
}
}
```
阅读全文
相关推荐


















