java创建目录或文件夹的方法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java创建目录或文件夹的方法?相关的知识,希望对你有一定的参考价值。
使用File类创建4个目录,再在4个目录中建立4个子目录,在每个目录中创建一个文本文件,而且打印每个文件的名字,,,,,,怎么做啊?
1、File类的createNewFile根据抽象路径创建一个新的空文件,当抽象路径制定的文件存在时,创建失败
2、File类的mkdir方法根据抽象路径创建目录
3、File类的mkdirs方法根据抽象路径创建目录,包括创建必需但不存在的父目录
4、File类的createTempFile方法创建临时文件,可以制定临时文件的文件名前缀、后缀及文件所在的目录,如果不指定目录,则存放在系统的临时文件夹下。
5、除mkdirs方法外,以上方法在创建文件和目录时,必须保证目标文件不存在,而且父目录存在,否则会创建失败
示例代码如下:
package book.io;import java.io.File;
import java.io.IOException;
public class CreateFileUtil
public static boolean createFile(String destFileName)
File file = new File(destFileName);
if(file.exists())
System.out.println("创建单个文件" + destFileName + "失败,目标文件已存在!");
return false;
if (destFileName.endsWith(File.separator))
System.out.println("创建单个文件" + destFileName + "失败,目标文件不能为目录!");
return false;
//判断目标文件所在的目录是否存在
if(!file.getParentFile().exists())
//如果目标文件所在的目录不存在,则创建父目录
System.out.println("目标文件所在目录不存在,准备创建它!");
if(!file.getParentFile().mkdirs())
System.out.println("创建目标文件所在目录失败!");
return false;
//创建目标文件
try
if (file.createNewFile())
System.out.println("创建单个文件" + destFileName + "成功!");
return true;
else
System.out.println("创建单个文件" + destFileName + "失败!");
return false;
catch (IOException e)
e.printStackTrace();
System.out.println("创建单个文件" + destFileName + "失败!" + e.getMessage());
return false;
public static boolean createDir(String destDirName)
File dir = new File(destDirName);
if (dir.exists())
System.out.println("创建目录" + destDirName + "失败,目标目录已经存在");
return false;
if (!destDirName.endsWith(File.separator))
destDirName = destDirName + File.separator;
//创建目录
if (dir.mkdirs())
System.out.println("创建目录" + destDirName + "成功!");
return true;
else
System.out.println("创建目录" + destDirName + "失败!");
return false;
public static String createTempFile(String prefix, String suffix, String dirName)
File tempFile = null;
if (dirName == null)
try
//在默认文件夹下创建临时文件
tempFile = File.createTempFile(prefix, suffix);
//返回临时文件的路径
return tempFile.getCanonicalPath();
catch (IOException e)
e.printStackTrace();
System.out.println("创建临时文件失败!" + e.getMessage());
return null;
else
File dir = new File(dirName);
//如果临时文件所在目录不存在,首先创建
if (!dir.exists())
if (!CreateFileUtil.createDir(dirName))
System.out.println("创建临时文件失败,不能创建临时文件所在的目录!");
return null;
try
//在指定目录下创建临时文件
tempFile = File.createTempFile(prefix, suffix, dir);
return tempFile.getCanonicalPath();
catch (IOException e)
e.printStackTrace();
System.out.println("创建临时文件失败!" + e.getMessage());
return null;
public static void main(String[] args)
//创建目录
String dirName = "D:/work/temp/temp0/temp1";
CreateFileUtil.createDir(dirName);
//创建文件
String fileName = dirName + "/temp2/tempFile.txt";
CreateFileUtil.createFile(fileName);
//创建临时文件
String prefix = "temp";
String suffix = ".txt";
for (int i = 0; i < 10; i++)
System.out.println("创建了临时文件:"
+ CreateFileUtil.createTempFile(prefix, suffix, dirName));
//在默认目录下创建临时文件
for (int i = 0; i < 10; i++)
System.out.println("在默认目录下创建了临时文件:"
+ CreateFileUtil.createTempFile(prefix, suffix, null));
输出结果:
创建目录D:/work/temp/temp0/temp1成功!
目标文件所在目录不存在,准备创建它!
创建单个文件D:/work/temp/temp0/temp1/temp2/tempFile.txt成功!
创建了临时文件:D:work emp emp0 emp1 emp5171.txt
创建了临时文件:D:work emp emp0 emp1 emp5172.txt
创建了临时文件:D:work emp emp0 emp1 emp5173.txt
创建了临时文件:D:work emp emp0 emp1 emp5174.txt
创建了临时文件:D:work emp emp0 emp1 emp5175.txt
创建了临时文件:D:work emp emp0 emp1 emp5176.txt
创建了临时文件:D:work emp emp0 emp1 emp5177.txt
创建了临时文件:D:work emp emp0 emp1 emp5178.txt
创建了临时文件:D:work emp emp0 emp1 emp5179.txt
创建了临时文件:D:work emp emp0 emp1 emp5180.txt
在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5181.txt
在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5182.txt
在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5183.txt
在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5184.txt
在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5185.txt
在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5186.txt
在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5187.txt
在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5188.txt
在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5189.txt
在默认目录下创建了临时文件:C:Documents and SettingsAdministratorLocal SettingsTemp emp5190.txt
import java.io.*;
public class createFile
public static void main(String args[]) throws Exception
String[] paths = "A","B","C","D";
String[] names = "a.txt","b.txt","c.txt","d.txt";
File[] files = new File[4];
for(int i=0;i<4;i++)
files[i] = new File(paths[i],names[i]);
files[i].getParentFile().mkdirs();
files[i].createNewFile();
System.out.println(files[i].getName());
本回答被提问者采纳
java文件操作方法大全
文章目录
方法
mkdir,//创建目录
strWriteFile,//字符串写入文件
deleteFolder,//删除文件夹
copyDirectiory,//拷贝目录
copyFile,//拷贝文件
getDocumentList,//获取文件夹列表或文件列表
readTxtToStr,//读取txt文件
具体实现
public class FileHelper
private static final Logger logger = LoggerFactory.getLogger(FileHelper.class);
/**
* 创建目录
*
* @author qitianersheng
*/
public static String mkdir(String dirPath)
File file = new File(dirPath);
if (!file.exists() && !file.mkdirs())
logger.error("创建文件夹失败,请查看相关权限");
return "fail";
return "success";
/**
* 字符串写入文件
*
* @author qitianersheng
*/
public static void strWriteFile(String str, String path, String fileName)
File folder = new File(path);
if (!folder.exists())
folder.mkdirs();
path = path + fileName;
logger.info("File storage path:", path);
File txt = new File(path);
try (FileOutputStream fos = new FileOutputStream(txt))
if (!txt.exists())
txt.createNewFile();
byte bytes[] = new byte[512];
bytes = str.getBytes();
int b = bytes.length;
fos.write(bytes, 0, b);
catch (FileNotFoundException e)
logger.error("FileNotFound:", e);
catch (IOException e)
logger.error("IOException:", e);
/**
* 删除文件夹
* @author qitianersheng
*/
public static void deleteFolder(File file)
if (!file.exists())
return;
if (file.isFile())
file.delete();
else if (file.isDirectory())
for (File f : file.listFiles())
deleteFolder(f);
file.delete();
/**
* 拷贝文件夹
*
* @author qitianersheng
*/
public static void copyDirectiory(String sourceDir, String targetDir) throws IOException
// 新建目标目录
(new File(targetDir)).mkdirs();
// 获取源文件夹当前下的文件或目录
File[] file = (new File(sourceDir)).listFiles();
for (int i = 0; i < file.length; i++)
if (file[i].isFile())
// 源文件
File sourceFile = file[i];
// 目标文件
File targetFile = new File(new File(targetDir).getAbsolutePath() + File.separator + file[i].getName());
copyFile(sourceFile, targetFile);
if (file[i].isDirectory())
// 准备复制的源文件夹
String dir1 = sourceDir + "/" + file[i].getName();
// 准备复制的目标文件夹
String dir2 = targetDir + "/" + file[i].getName();
copyDirectiory(dir1, dir2);
/**
* 拷贝文件
*
* @author qitianersheng
*/
private static void copyFile(File sourceFile, File targetFile)
// 新建文件输入流并对它进行缓冲
try (FileInputStream input = new FileInputStream(sourceFile);
BufferedInputStream inBuff = new BufferedInputStream(input);
// 新建文件输出流并对它进行缓冲
FileOutputStream output = new FileOutputStream(targetFile);
BufferedOutputStream outBuff = new BufferedOutputStream(output))
// 缓冲数组
byte[] b = new byte[1024 * 5];
int len;
while ((len = inBuff.read(b)) != -1)
outBuff.write(b, 0, len);
// 刷新此缓冲的输出流
outBuff.flush();
catch (IOException e)
logger.error("copyFile() error:", e);
/**
* 获取文件夹列表或文件列表
*
* @return List<String>
* @author qitianersheng
*/
public static List<String> getDocumentList(String path, Boolean isFolder)
List<String> list = new ArrayList<>();
File baseFile = new File(path);
if (baseFile.isFile() || !baseFile.exists())
return list;
File[] files = baseFile.listFiles();
if (isFolder)
for (File file : files)
if (file.isDirectory())
list.add(file.getName());
else
for (File file : files)
if (file.isFile())
list.add(file.getName());
return list;
/**
* 读取txt文件
* @author qitianersheng
*/
public static String readTxtToStr(String path)
StringBuffer buffer = new StringBuffer();
try (BufferedReader bf = new BufferedReader(new FileReader(path)))
String s = null;
while ((s = bf.readLine()) != null) // 使用readLine方法,一次读一行
buffer.append(s.trim());
catch (Exception e)
return buffer.toString();
注
- 文章是个人知识点整理总结,如有错误和不足之处欢迎指正。
- 如有疑问、或希望与笔者探讨技术问题(包括但不限于本章内容),欢迎添加笔者微信(o815441)。请备注“探讨技术问题”。欢迎交流、一起进步。
以上是关于java创建目录或文件夹的方法?的主要内容,如果未能解决你的问题,请参考以下文章