1. URL

菜鸟教程:Java URL处理 通常推荐对http等协议进行使用,若操作(file:)部分属性将无意义,建议getFile()。

相关:URLConnections 类 可以打开连接进行IO

通过getResource方法可以获得相对于classPath的文件的URL

2. File

@Test

void test7() throws IOException {

String dirname = "./file.txt";

File f1 = new File(dirname);

if (f1.isDirectory()) {

System.out.println(dirname + " is a directory");

} else {

System.out.println(dirname + " is not a directory");

}

System.out.println("CanonicalPath:" + f1.getCanonicalPath());

System.out.println("AbsolutePath :" + f1.getAbsolutePath());

System.out.println("Path :" + f1.getPath());

}

"./file.txt" :输出结果

./file.txt is not a directory CanonicalPath:E:\a\MyFilesNoCh\JAVA\eclipse-jee-2018-09-win32-x86_64-Spring-Hibernate\ClassPathTest\file.txt AbsolutePath :E:\a\MyFilesNoCh\JAVA\eclipse-jee-2018-09-win32-x86_64-Spring-Hibernate\ClassPathTest.\file.txt Path :.\file.txt

"/file.txt" :输出结果

/file.txt is not a directory CanonicalPath:E:\file.txt AbsolutePath :E:\file.txt Path :\file.txt

"file.txt" :输出结果

file.txt is not a directory CanonicalPath:E:\a\MyFilesNoCh\JAVA\eclipse-jee-2018-09-win32-x86_64-Spring-Hibernate\ClassPathTest\file.txt AbsolutePath :E:\a\MyFilesNoCh\JAVA\eclipse-jee-2018-09-win32-x86_64-Spring-Hibernate\ClassPathTest\file.txt Path :file.txt

结论

CanonicalPath返回全路径,但不会包含../.等符号

AbsolutePath返回全路径,会包含../.等符号

使用/开头,会从磁盘根目录开始索引

不使用/开头,会从eclipse项目根目录开始索引

getPath返回的是对象创建是的路径参数

3. Path

Java7中文件IO发生了很大的变化,专门引入了很多新的类:

import java.nio.file.DirectoryStream; import java.nio.file.FileSystem; import java.nio.file.FileSystems; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.attribute.FileAttribute; import java.nio.file.attribute.PosixFilePermission; import java.nio.file.attribute.PosixFilePermissions;

其中Path在功能上可以说和原来的File相似,包含了各种路径处理操作,而新的File及其相关类Files可以说是包含了绝大多数的文件操作方法,比如创建、复制、遍历、重命名、权限、可否执行等。。。也可以直接获取流对象。

[二] JavaIO之File详解 以及FileSystem WinNTFileSystem简介 java Files类和Paths类的用法 (转)

URI和URL都定义了资源是什么,但URL还定义了该如何访问资源。URL是一种具体的URI,它是URI的一个子集,它不仅唯一标识资源,而且还提供了定位该资源的信息。URI 是一种语义上的抽象概念,可以是绝对的,也可以是相对的,而URL则必须提供足够的信息来定位,是绝对的。

FileSystem到底是什么?

操作系统有各自的文件系统,这些文件系统又存在很多差异,而Java 因为是跨平台的,所以它必须要统一处理这些不同平台文件系统之间的差异,才能往上提供统一的入口。

说白了又是接口来实现统一,不同的操作系统实现这个接口,就可以提供统一的表现形式

FileSystem是一个抽象类 ,

windows下的实现类为:WinNTFileSystem,在IDE中可以直接找到

可能你只是找到了一个WinNTFileSystem,只有一个要接口还有什么意思?

如果你目前只看到了一个WinNTFileSystem 那说明你在Windows下

WinNTFileSystem类 和 UnixFileSystem类并不是在同一个 JDK 里面,也就是说它们是分开的

你只能在 Windows 版本的 JDK 中找到 WinNTFileSystem,而在 Linux 版本的 JDK 中找到 UnixFileSystem

同样地,其他操作系统也有自己的文件系统实现类。

java io 文件路径_【IO流】java中文件路径(相对路径、绝对路径)相关类及方法...相关推荐

  1. cmd中如何查看当前绝对路径_如何查看 Linux 中文件打开情况?

    (给Linux爱好者加星标,提升Linux技能) 作者:守望(本文来自作者投稿,简介见末尾) 前言 我们都知道,在linux下,"一切皆文件",因此有时候查看文件的打开情况,就显得 ...

  2. java 改变文件路径_在C#中改变文件路径

    我正在创建C#Windows窗体,它从共享驱动器中检索文件作为电子邮件附件 . 我试图自动化文件检索过程,但我可用的文件路径根据日期而有所不同 . 例如: V:\....\Dec-03\filenam ...

  3. C语言rewind()函数(设置文件位置为给定流 stream 的文件的开头)(回到文件开头重读)

    C 标准库 - <stdio.h> 文章目录 描述 声明 参数 返回值 实例 描述 C 库函数 void rewind(FILE *stream) 设置文件位置为给定流 stream 的文 ...

  4. java io 文件路径_如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径...

    如何从Java项目中的相对路径读取文件? java.io.File找不到指定的路径 我有一个包含2个包的项目: ListStopWords.txt ListStopWords.txt 在包(2)中我有 ...

  5. java输入a控制台打印1_Java—— 流(Stream)、文件(File)和IO

    参考于:https://blog.csdn.net/qq_22063697/article/details/52137369  版权声明:本文为博主原创文章,转载请附上博文链接! 一.  什么是 IO ...

  6. java io 文件复制_实例讲述Java IO文件复制

    前言:IO流主要分为两大类,分别是字节流与字符流 注意: 1.音频文件.图片.视频(范围广),就用字节流 2.只涉及到文本的,就用字符流 使用字节流复制文本内容(其他文件也可以) 代码如下: impo ...

  7. java中io是什么_深入理解Java中的IO

    深入理解Java中的IO 转载自:http://blog.csdn.net/qq_25184739/article/details/51205186 本文的目录视图如下: Java IO概要 a.Ja ...

  8. java查找文件路径_如何查找java路径?

    展开全部 Java的路径问题,非常难搞.最近的工作涉及到创建和读取文件的工作,这里我就给大家彻底得解决e69da5e6ba9062616964757a686964616f31333365633838J ...

  9. java获取当前项目相对路径_怎样在JAVA文件中获取该项目的相对路径

    1.基本概念的理解 绝对路径:绝对路径就是你的主页上的文件或目录在硬盘上真正的路径,(URL和物理路径)例如: C:\xyz\test.txt 代表了test.txt文件的绝对路径.http://ww ...

最新文章

  1. IP 管理,几多欣喜几多忧
  2. Delphi中的指针类型
  3. 一款不错的网页对话插件
  4. 01.几张图轻松理解String.intern()
  5. linux服务器指示灯,【转】明明白白你的Linux服务器——故障篇 | 旺旺知识库
  6. web 服务器被配置为不列出此目录的内容。_三级网络技术考前选择题12—WWW服务器...
  7. POJ3414(BFS+[手写队列])
  8. C++如何生成随机数
  9. android app 后台运行,安卓APP锁定后台运行的方法
  10. 网络安全等级保护云计算安全防护技术体系设计
  11. Groovy - Groovy ambiguous method overload
  12. 7天java_7天学完Java基础之0/7
  13. Frida的安装与使用
  14. 合工大计算机考研导师,合肥工业大学计算机与信息学院导师介绍:胡东辉
  15. 将文件保存到fpga
  16. 孙鑫Java视频教程(全12CD)
  17. 加密算法之SHA(SHA1、SHA256)
  18. mysql用于检索的关键字_Mysql全文搜索match...against的用法
  19. css 实现上下、左右、左上、左下、右上、右下和对角线移动动画
  20. appium安装教程和使用中的问题解决

热门文章

  1. ue4如何恢复初始状态_如何解决三菱伺服电机上常见报警代码
  2. list下界_下界理论
  3. 附录:更多集合操作命令
  4. Oracle备份还原
  5. CentOS7 源码编译安装MySQL8.0.15 shell脚本
  6. android listview 数据数组制作,android – 从对象的数组列表中填充listview
  7. LeetCode题库整理【Java】—— 7整数反转
  8. 鹿邑2021高考成绩查询,鹿邑中考成绩查询2021
  9. 蓝桥杯小朋友排队java_[蓝桥杯][历届试题]小朋友排队 (C++代码)
  10. decimal类型 go_Go 语言程序设计——字符串类型(2)