public class FileTest01 {
public static void main(String[] args) throws IOException {
File file = new File("D:\\file");
//判断是否存在
System.out.println(file.exists());
if(!file.exists()) {
//以文件的形式新建
file.createNewFile();
}
if(!file.exists()){
//以目录的形式新建
file.mkdir();
}
if(!file.exists()){
File f2 = new File("D:/a/b/c");
//以多重目录创建
f2.mkdirs();
}
}
}
public class FileTest02 {
public static void main(String[] args) {
File f1 = new File("D:\\迅雷下载");
//获取绝对路径名
System.out.println(f1.getAbsoluteFile());
//获取文件名
System.out.println("文件名:" + f1.getName());
//判断是否是一个目录
System.out.println(f1.isDirectory());
//判断是否是一个文件
System.out.println(f1.isFile());
//获取文件最后一次修改的时间
long haoMiao = f1.lastModified(); //从1970开始的总毫秒数
Date time = new Date(haoMiao);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:mm:ss SSS");
String strTime = sdf.format(time);
System.out.println(strTime);
//获取文件的大小 (单位:字节)
System.out.println(f1.length());
//获取当前目录下所有子文件
File[] files = f1.listFiles();
for(File f : files){
System.out.println(f.getName());
}
}
}
public class FileCopy {
public static void main(String[] args) {
File srcFile = new File("D:\\Aseprite");
File desFile = new File("D:\\迅雷下载");
FileCopy.create(srcFile, desFile);
}
/**
* 目录拷贝
* @param srcFile 源目录
* @param desFile 目标目录
*/
public static void create(File srcFile, File desFile){
//需要强调:"\\"是因为转义的原因才有两个"\",实际上在字符串中只有1个
String desDtr = desFile.getAbsolutePath().endsWith("\\") ? desFile.getAbsolutePath() :
desFile.getAbsolutePath() + "\\" + srcFile.getName();
desFile = new File(desDtr);
//如果是一个文件,则直接进行拷贝
if(srcFile.isFile()){
copy(srcFile,desFile);
}
//如果是一个目录,则首先将此目录创建出来,然后递归
else if(srcFile.isDirectory()){
desFile.mkdir();
File[] files = srcFile.listFiles();
for(File f : files){
create(f, desFile);
}
}
}
/**
* 文件拷贝
* @param srcFile 源目录
* @param desFile 目标目录
*/
public static void copy(File srcFile , File desFile){
System.out.println(srcFile.getName());
System.out.println(desFile.getName());
System.out.println();
FileInputStream fis = null;
FileOutputStream fos = null;
try {
fis = new FileInputStream(srcFile);
fos = new FileOutputStream(desFile);
byte[] bytes = new byte[1024 * 1024];
int retValue = 0;
while((retValue = fis.read(bytes)) != -1){
fos.write(bytes, 0, retValue);
}
fos.flush();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(fis != null){
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(fos != null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
原文:https://www.cnblogs.com/zy200128/p/13021839.html