[Thinking in Java]
来源:互联网 发布:php执行exec权限不足 编辑:程序博客网 时间:2024/06/05 19:57
最近在系统地学习JavaIO流,首先学习的就是Java中的文件类。
File类主要函数总览:
这些函数都很简单,根据函数名就可以很好的掌握函数具体原理和用法。在这里我只讲解三个地方:
1. getPath()、getAbsolutePath()和getCanonicalPath()
String path = ".\\test.txt";String path1 = "E:\\test.txt";File file = new File(path);File file2 = new File(path1);System.out.println(file.getPath());System.out.println(file.getAbsolutePath());System.out.println(file.getCanonicalPath());System.out.println("<------------->");System.out.println(file2.getPath());System.out.println(file2.getAbsolutePath());System.out.println(file2.getCanonicalPath());运行结果:
可以发现:
使用了绝对路径的所有函数三种方法的结果均是该文件的绝对路径。
使用了相对路径的三种函数结果不同,分别为:
getPath():相对路径本身
getAbsolutePath():定义文件时路径对应的绝对路径,但是没有处理"."或".."的情况
getCanonicalPath():规范的绝对路径,会处理"."或".."的情况
2. File中的Separator,SeparatorChar,pathSeparator和pathSeparatorChar
总的来说,Separator是用来分隔一个路径字符串中的不同目录的。pathSeparator用来分隔连续多个路径字符串。
例如:"E:\mydir1\mydir2\test.txt";在这个字符串中,"\"就是Separator
例如:"E:\mydir1\mydir2\test.txt;G\mydir3\test2.txt",其中,";"就是E:\mydir1\mydir2\test.txt和G\mydir3\test2.txt的pathSeparator。
Separator和SeparatorChar:
public static final char separatorChar = fs.getSeparator();
public static final String separator = "" + separatorChar;
可以看出,Separator是由SeparatorChar和一个空字符串相加组成一个字符串。在Unix中,SeparatorChar是'/',在Windows中,SeparatorChar是'\'
pathSeparator和pathSeparatorChar:
public static final char pathSeparatorChar = fs.getPathSeparator();
public static final String pathSeparator = "" + pathSeparatorChar;
可以看出,pathSeparator 是由pathSeparatorChar和一个空字符串相加组成一个字符串。在Unix中,pathSeparator 是':',pathSeparatorChar是';'
同时,我们在文件的创建中经常出现下面这种情况;
String path = "E:\\test.txt";File file = new File(path);
那么"\\"是什么呢?"\\"并不是一个文件路径中目录的分隔符,只是在字符串中,所有的'\'均表示转义,意为下一个字符表示特殊含义。所以我们需要使用"\"的时候,需要变为"\\"进行转义。"\\"本身并没有任何意思。表示转义的'\'并不真正的出现在字符串中。
例如:
结果:
我们还可通过一下形式来定义路径:
String path= "E:" + File.separator + "test123.txt";
3. file.mkdir()和file.mkdirs()
String path = "E:\\123\\456";File dir = new File(path);dir.mkdir();//如果123文件夹不存在则无法创建456dir.mkdirs();//如果123文件夹不存在也可以创建456
- [Java]Thinking in Java
- Thinking in Java笔记
- 《Thinking in Java》读书笔记
- Thinking in java(1)
- Thinking in JAVA websites
- Thinking in java 笔记
- Thinking In Java (一)
- Thinking In Java (二)
- Thinking in Java 8
- Thinking in Java 12
- 学习 thinking in java
- Thinking in java-1
- Thinking in java-02
- Thinking in java-03
- Thinking in java-04
- Thinking in java-05
- Thinking in java-06
- Thinking in java-07
- Ubuntu 17.04 解决耳机插入没有声音的问题
- INADDR_ANY的确切含义
- oracle同义词测试
- Scrapy 爬虫 个人学习经验
- numpy 报错
- [Thinking in Java]
- 使用balancer_by_lua_block做应用层负载均衡
- spring-boot集成swagger
- UIApplication openUrl too slow (十分慢 10秒)
- POI生成WORD文档
- JSP页面乱码的所有情况及解决办法
- Machine Learning 2014 by Andrew NG (part 1)
- 源码解析文章
- IDEA Struts学习项目搭建[初学者一目了然]