创建普通方法的时候,由于createNewFile()源码中抛出了io异常,我们就要解决这个异常
public boolean createNewFile() throws IOException {
SecurityManager security = System.getSecurityManager();
if (security != null) security.checkWrite(path);
if (isInvalid()) {
throw new IOException("Invalid file path");
}
return fs.createFileExclusively(path);
}
解决io异常的两个方法:
1、自己throws出去
2、try catch 一下
看文件/文件夹时是否是文件夹时候,不要看名字,要看文件/文件夹属性
例如
haha.txt是文件夹,而不是文本文档
=====================
Java中File类创建文件、文件夹、删除文件的方法代码
package com.baidu;
import java.io.File;
import java.io.IOException;
public class FileCreatAndDelete {
/*
boolean delete() 删除由此抽象路径名表示的文件或目录。
boolean mkdir() 创建由此抽象路径名命名的目录。
boolean mkdirs() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。
boolean createNewFile() 当且仅当具有该名称的文件尚不存在时,创建一个由该抽象路径名命名的新的空文件。
*/
public static void main(String[] args) throws IOException {
//show01();
//show02();
//show03();
//show04();
show05();
}
/*
boolean createNewFile() 当且仅当具有该名称的文件尚不存在时,创建一个由该抽象路径名命名的新的空文件。
创建文件的路径和名称在构造方法中给出(构造方法的参数)
返回值:布尔值
true:文件不存在时,可以创建文件,返回true
false:文件已经存在时,不会创建,返回false
注意:
1、此方法只能创建文件,不能创建文件夹
2、创建文件的路径必须存在,否则会抛出异常
*/
/*
show01()方法介绍的是绝对路径创建文件
*/
private static void show01() throws IOException {
/*
源码:
public boolean createNewFile() throws IOException {
SecurityManager security = System.getSecurityManager();
if (security != null) security.checkWrite(path);
if (isInvalid()) {
throw new IOException("Invalid file path");
}
return fs.createFileExclusively(path);
}
*/
/*
public boolean createNewFile() throws IOException
createNewFile声明抛出了IOException,就必须处理这个异常
解决的方法:
1、throws
2、try catch
*/
File f1 = new File("F:\\acan\\IdeaProjects\\hadoopdaima\\3.txt");
if (!(f1.exists())){
boolean newFile1 = f1.createNewFile();
System.out.println(newFile1);
System.out.println("创建成功!");
}else {
System.out.println("文件已经存在!");
}
}
/*
show02方法介绍相对路径新建文件
*/
private static void show02() throws IOException {
File f2 = new File("4.txt");
if (!(f2.exists())){
boolean newFile2 = f2.createNewFile();
System.out.println(newFile2);
System.out.println("创建成功");
}else {
System.out.println("文件已经存在!");
}
}
/*
路径不存在会抛出io异常
*/
private static void show03() throws IOException {
File f3 = new File("boluochuixue\\8.txt");
if (!(f3.exists())){
boolean newFile3 = f3.createNewFile();
System.out.println(newFile3);
}else {
System.out.println("此文件已经存在");
}
}
/*
抛出的io异常在这里
Exception in thread "main" java.io.IOException: 系统找不到指定的路径。
at java.io.WinNTFileSystem.createFileExclusively(Native Method)
at java.io.File.createNewFile(File.java:1012)
at com.baidu.FileCreatAndDelete.show03(FileCreatAndDelete.java:86)
at com.baidu.FileCreatAndDelete.main(FileCreatAndDelete.java:17)
*/
/*
boolean mkdir() 创建由此抽象路径名命名的目录。
boolean mkdirs() 创建由此抽象路径名命名的目录,包括任何必需但不存在的父目录。
*/
/*
和linux有点联系,在linux中mkdir是创建单级空文件夹
mkdir -p是创建多级文件夹
mkdir和mkdirs也是一样的原理
mkdirs既可以创建单级文件夹又可以创建多级文件夹
需要注意的有:
创建文件夹的路径和名称在构造方法中给出(构造方法参数)
返回值:布尔型
true:文件夹不存在,创建文件夹,返回true
false:文件夹存在,不会创建,返回false;
构造方法中给出的路径不存在返回false
*/
public static void show04(){
File f1 = new File("F:\\develop\\boluochuixue");
if (!(f1.exists())){
boolean mkdir1 = f1.mkdir();
System.out.println(mkdir1);
System.out.println("文件夹"+f1.getName()+"已经创建成功!");
}else {
System.out.println("文件夹以存在");
}
File f2 = new File("F:\\develop\\shangguanziyi\\loveyou");
if (!(f2.exists())){
boolean mkdirs1 = f2.mkdirs();
System.out.println(mkdirs1);
System.out.println("多级空文件夹创建成功!");
}else {
System.out.println("多级空文件夹已经存在");
}
File f3 = new File("F:\\develop\\haha.txt");//haha.txt也可以是文件夹,看文件不要看名称,要看类型
if (!(f3.exists())){
boolean mkdirs2 = f3.mkdirs();
System.out.println(mkdirs2);//看类型,是一个文件
System.out.println("多级空文件夹创建成功!");
}else{
System.out.println("多级空文件夹创建失败(已经存在错误)");
}
}
/*
boolean delete() 删除由此抽象路径名表示的文件或目录。
此方法可以删除文件或者是文件夹
返回值:布尔值
true:文件/文件夹删除成功,返回true
fasle:文件夹有内容,不会删除返回false
构造方法中的路径不存在返回fasle
注意:
delete直接在硬盘上删除文件或文件夹,不走回收站
*/
private static void show05(){
File f1 = new File("F:\\develop\\boluochuixue");
if (f1.exists()){
boolean delete1 = f1.delete();
System.out.println(delete1);
System.out.println("文件或者文件夹删除成功!");
}else {
System.out.println("此文件或者文件夹不存在!");
}
}
}