java创建文件夹及TXT文件并写入
最近需要做一个云存档的模块,刚开始创建的时候经常报找不到路径,记录一下我感觉不错的写法
测试类
package com.xzly;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
/**
* java创建文件夹和文件并写入内容
*/
@SpringBootTest
public class CreateTxtTest {
@Test
public void createTxt(){
//str字符串作为前端传来的参数
String str = "Name=test1&Index=2&Type=Save_KingData_16&Obj_Str={aoe,ivu}";
try {
//根据&分割字符串
String[] params = str.split("[: & ;]");
//catalog、Name、Index做为文件夹,Type为txt文件名
String Name = params[0].substring(5);
String Index = "Save-" + params[1].substring(6);
String Type = params[2].substring(5) + ".txt";
//要写入内容
String Obj_Str = params[3].substring(8);
String catalog = "D://cloudsArchive/";
//指定路径如果没有则创建并添加
File file = new File(catalog + Name + "/" + Index + "/" + Type);
//获取父目录
File fileParent = file.getParentFile();
//判断是否存在,如果不存在则创建
if (!fileParent.exists()) {
fileParent.mkdirs();
}
//根据抽象路径创建一个新的空文件
file.createNewFile();
判断文件是否存在
if (file.exists()) {
//创建一个用于操作文件的字节输出流对象,创建就必须明确数据存储目的地
FileOutputStream fos = new FileOutputStream(file);
//写入
fos.write(Obj_Str.getBytes(StandardCharsets.UTF_8));
System.out.println("成功!!!");
//刷新并关闭流
fos.flush();
fos.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
项目中代码
效果图
希望对大家都有所帮助,共同进步!!!