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. SSDP 抓包

    简单服务发现协议(SSDP,Simple Service Discovery Protocol)

  2. 【HDU4706】Children's Day

    http://acm.hdu.edu.cn/showproblem.php?pid=4706 水题,也不知道有没有spj // <4706.cpp> - 11/03/16 14:11:21 ...

  3. poj2154 Color ——Polya定理

    题目:http://poj.org/problem?id=2154 今天学了个高端的东西,Polya定理... 此题就是模板,然而还是写了好久好久... 具体看这个博客吧:https://blog.c ...

  4. oracle中WMSYS.WM_CONCAT函数的版本差异

    昨天在测试的时候发现,开发人员写的一段程序放在开发库中是好的,但是放在测试库中就会有问题.开发人员一直找不到问题的原因在哪里.于是就花了点时间协助开发人员来找问题的根本原因. 通过一些技术手段,定位到 ...

  5. 公司6:JrVue重用布局

    JrVue是我们基于element重新封装的一套组件库;  为了提高开发效率, 方便对代码的统一管理和维护,  我们提供了一些统一的页面布局, 以及项目常用的中小型模块 我在master新拉一个分支J ...

  6. StackOverflow 创始人关于如何高效编程的清单

    这是 StackOverflow 联合创始人 Jeff Atwood 注释的十戒.程序员普遍有很强的自尊心,都应该看看本文,打印下来时刻提醒自己. “无我编程”发生在开发阶段,表现为技术团队经常通过同 ...

  7. 洛谷P5398 [Ynoi2018]GOSICK(二次离线莫队)

    题面 传送门 题解 维包一生推 首先请确保您会二次离线莫队 那么我们现在的问题就是怎么转移了,对于\(i\)和前缀\([1,r]\)的贡献,我们拆成\(b_i\)和\(c_i\)两部分,其中\(b_i ...

  8. 题解报告:hdu 2717 Catch That Cow(bfs)

    Problem Description Farmer John has been informed of the location of a fugitive cow and wants to cat ...

  9. 397 Integer Replacement 整数替换

    给定一个正整数 n,你可以做如下操作:1. 如果 n 是偶数,则用 n / 2替换 n.2. 如果 n 是奇数,则可以用 n + 1或n - 1替换 n.n 变为 1 所需的最小替换次数是多少?示例 ...

  10. java 装饰者类

    装饰者模式:增强一个类的功能还可以让装饰者类之间互相装饰. 装饰者模式和继承的区别: 继承实现的增强类: 优点:代码结构清晰,而且实现简单 缺点:对于每一个的需要增强的类都要创建具体的子类来帮助其增强 ...