package FunDemo;

import java.io.File;
import java.io.IOException;
import java.util.Arrays; public class Demo {
public static void main(String[] args) throws Exception {
/*
* 访问文件名相关的方法:
* String getName():返回此File对象所表示的文件名或路径名(如果是路径,则返回最后一级子路径名)
* String getPath():返回此File对象所对应的路径名
* String getAbsolutePath():返回此File对象所对应的绝对路径名
* File getAbsoluteFile():返回此File对象的绝对路径
* String getParent():返回此File对象所对应目录的父目录名
*/
String path1="H:/A/B/test.txt";
File file1=new File(path1);
System.out.println(file1);//H:\A\B\test.txt
//直接输出File的实体类,输出是该类创建时使用的参数,下一个实体类同理也是输出创建的参数
System.out.println("file路径为:" + file1.getPath());
System.out.println("file名称:" + file1.getName());
System.out.println("file绝对路径:" + file1.getAbsolutePath());
System.out.println("file父目录:" + file1.getParent());
/*
* file路径为:H:\A\B\test.txt
file名称:test.txt
file绝对路径:H:\A\B\test.txt
file父目录:H:\A\B
*/
String path2="test.txt";
File file2=new File(path2);
System.out.println(file2);//test.txt
////直接输出File的实体类,输出是该类创建时使用的参数
System.out.println("file路径为:" + file2.getPath());
System.out.println("file名称:" + file2.getName());
System.out.println("file绝对路径:" + file2.getAbsolutePath());
System.out.println("file父目录:" + file2.getParent());
/*
* file路径为:test.txt
file名称:test.txt
file绝对路径:C:\Java\Eclipse\WorkSpace\Upan\test.txt
file父目录:null
*/
/*
* 可以看到,当使用绝对路径作为File对象的构造参数时,getPath和getAbsolutePath的返回结果是一致的,
* 而使用相对路径时,则不然
*/
/*
* 文件检测相关的方法: boolean exists():判断File对象所对应的文件或目录是否存在
boolean canWrite():判断File对象所对应的文件是否可写
boolean canRead():判断File对象所对应的文件是否可读
boolean canExecute():判断File对象所对应的文件是否执行
boolean isDirectory():判断File对象所对应的文件是否是目录
boolean isAbsolute():判断File对象所对应的文件或目录是否是绝对路径
*/
System.out.println("-------------------------------------------------");
if (!file1.exists()) {
System.out.println(file1 + "并不存在");
}
if (file1.isAbsolute()) {
System.out.println(file1 + "是绝对路径");
} else {
System.out.println(file1 + "不是绝对路径");
}
if (file2.isAbsolute()) {
System.out.println(file2 + "是绝对路径");
} else {
System.out.println(file2 + "不是绝对路径");
}
/*
* file1既不是文件也不是目录,下面的两个方法均返回false
*/
if (file1.isFile()) {
System.out.println(file1 + "为文件");
}
if (file1.isDirectory()) {
System.out.println(file1 + "为目录");
}
if (file1.canRead()) {
System.out.println(file1 + "可读");
} else {
System.out.println(file1 + "不可读");
}
if (file1.canWrite()) {
System.out.println(file1 + "可写");
} else {
System.out.println(file1 + "不可写");
}
if (file1.canExecute()) {
System.out.println(file1 + "可执行");
} else {
System.out.println(file1 + "不可执行");
}
/*
* H:\A\B\test.txt并不存在
H:\A\B\test.txt是绝对路径
test.txt不是绝对路径
H:\A\B\test.txt不可读
H:\A\B\test.txt不可写
H:\A\B\test.txt不可执行
*/ /*
* 目录操作的相关方法: boolean mkdir():创建此抽象路径名指定的目录。如果父目录不存在则创建不成功。
boolean mkdirs(),创建此抽象路径名指定的目录,包括所有必需但不存在的父目录。
String[] list():列出File对象的所有子文件名和路径名,返回String数组
File[] listFiles():列出File对象的所有子文件和路径,返回File数组
static File[] listRoots():列出系统所有根路径
*/ System.out.println(file1.mkdirs());
/*
* 此时返回true,但是其中存在一个问题,创建的目录中,A\B\test.txt,test.txt也是一个文件夹
*/
System.out.println(Arrays.toString(File.listRoots())); /*
* 获取文件常规信息:
long lastModified():返回文件的最后修改时间
long length():返回文件内容的长度
文件操作相关方法:
boolean createNewFile():
当File对象所对应的文件不存在时,创建一个File对象所指定的新文件,如果创建成功则返回true,否则返回false
boolean delete():删除File对象所对应的文件或路径
static File createTempFile(String prefix, String suffix, File directory):
在指定的File目录下创建一个临时的空文件,使用给定前缀、系统生成的随机数和给定后缀作为文件名,
如果没有传入File目录对象,则默认在临时文件目录创建临时文件
void deleteOnExit():File对象会在JVM退出时删除所指定的文件或目录
boolean renameTo(File dest):
重命名此File对象所对应的文件或目录,如果命名成功则返回true,否则返回false */
File file4 = new File("F:/AAA/BBB/CCC");
if (file4.mkdirs()) {
System.out.println("多级层文件夹创建成功!创建后的文件目录为:" + file4.getPath() + ",上级文件为:" + file4.getParent());
} File file5 = new File("F:/AAA/BBB/CCC/DDD");
if (file5.mkdir()) {
System.out.println("单文件夹 DDD 创建成功!创建后的文件目录为:" + file5.getPath() + ",上级文件为:" + file5.getParent());
} File file6 = new File("F:/AAA/BBB/CCC/DDD","mytest.txt");
try {
if (file6.createNewFile()) {
System.out.println("多级层文件夹下文件创建成功!创建了的文件为:" + file6.getAbsolutePath() + ",上级文件为:" + file6.getParent());
}
} catch (IOException e) {
e.printStackTrace();
}
/*
* 多级层文件夹创建成功!创建后的文件目录为:F:\AAA\BBB\CCC,上级文件为:F:\AAA\BBB
单文件夹 DDD 创建成功!创建后的文件目录为:F:\AAA\BBB\CCC\DDD,上级文件为:F:\AAA\BBB\CCC
多级层文件夹下文件创建成功!创建了的文件为:F:\AAA\BBB\CCC\DDD\mytest.txt,上级文件为:F:\AAA\BBB\CCC\DDD
* 这样就很清楚了,mkdir() 创建单个文件夹,要确保它的上级文件夹存在。
mkdirs() 创建多个文件夹,并且不需要保证它的上级文件夹存在。
将文件输出到文件夹下要确保目标文件夹存在。
*/ }
}

java基础学习日志---File方法分析的更多相关文章

  1. java基础学习日志--String、StringBuffer方法案例

    package StringDemo; import java.util.Arrays; /* * 常用String.StringBufer类的方法 */ public class Demo1 { p ...

  2. [转]java基础学习总结——equals方法

    一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 1 package cn.galc.test; 2 3 public class TestEquals { 4 public s ...

  3. java基础学习总结——equals方法

    一.equals方法介绍 1.1.通过下面的例子掌握equals的用法 package cn.galc.test; public class TestEquals { public static vo ...

  4. java基础学习日志--异常案例

    package test7; public class InvalidScroreException extends Exception { public InvalidScroreException ...

  5. java基础学习日志--Stirng内存案例

    案例一: public class test1 { public static void mb_swap(String Str1,String Str2) { String temp=Str1; St ...

  6. 转载-java基础学习汇总

    共2页: 1 2 下一页  Java制作证书的工具keytool用法总结 孤傲苍狼 2014-06-24 11:03 阅读:25751 评论:3     Java基础学习总结——Java对象的序列化和 ...

  7. 尚学堂JAVA基础学习笔记

    目录 尚学堂JAVA基础学习笔记 写在前面 第1章 JAVA入门 第2章 数据类型和运算符 第3章 控制语句 第4章 Java面向对象基础 1. 面向对象基础 2. 面向对象的内存分析 3. 构造方法 ...

  8. [转帖]java基础学习总结——多态(动态绑定)

    https://www.cnblogs.com/xdp-gacl/p/3644035.html 多态的概念 java基础学习总结——多态(动态绑定) 一.面向对象最核心的机制——动态绑定,也叫多态

  9. Java基础学习中一些词语和语句的使用

    在Java基础学习中,我们刚接触Java会遇到一些词和语句的使用不清的情况,不能很清楚的理解它的运行效果会是怎么样的,如:break,continue在程序中运行效果及跳转位置, 1.先来看看brea ...

随机推荐

  1. BZOJ 3041 水叮当的舞步

    3041: 水叮当的舞步 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 120  Solved: 67[Submit][Status][Discuss ...

  2. 安装 pip pip 包 安装路径

    python2 -m pip install --upgrade pip --force-reinstall pip uninstall pandas pip install --install-op ...

  3. js执行“按回车”的动作

    <textarea class="W_input" style="overflow: hidden; height: 23px;" node-type=& ...

  4. 第二次PHP面试题

    昨天下午翘班去参加了人生中第二次PHP面试.是一家相对第一家更加专业的互联网公司.效果不如第一家理想,笔试题有点难,而且偏高理论,面试时面试官也还不错,一起探讨,可是他的问题我还是很多都不知道,果然是 ...

  5. ZOJ 3609 Modular Inverse(扩展欧几里德)

    题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=4712 The modular modular multiplicat ...

  6. ubutu14.04无法使用sudo,也无法切换到root用户去解决问题怎么办?

    一不小心,修改了/etc/sudoers文件. 惨了. 无法使用sudo了,啥都干不成了. 最最关键的是,也无法用root登录. 本想着要重装系统了. 后来发现了神奇的ubuntu安全模式. 1.重启 ...

  7. xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is

    method: select Xcode version in Command Line Tools in Location(Click Xcode and then Preferences) Bef ...

  8. java 线程开元篇

    学习java的读者都知道,Java的每个对象都会有默认的12个方法,这12个方法分别是 object() finalize() hashCode() equals() wait() wait(long ...

  9. Linux上安装禅道

    linux一键安装包内置了apache, php, mysql这些应用程序,只需要下载解压缩即可运行禅道. 从7.3版本开始,linux一键安装包分为32位和64位两个包,请大家根据操作系统的情况下载 ...

  10. kafka启动时出现FATAL Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer) java.io.IOException: Permission denied错误解决办法(图文详解)

    首先,说明,我kafk的server.properties是 kafka的server.properties配置文件参考示范(图文详解)(多种方式) 问题详情 然后,我启动时,出现如下 [hadoop ...