`
jianzong2000
  • 浏览: 56082 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

new file("")的结果分析

 
阅读更多

System.out.println(new File("").getAbsolutePath());即是user.dir的路径,分析代码如下

 

//File类的初始化

public File(String pathname) {

    if (pathname == null) {

        throw new NullPointerException();

    }

    //fswindow下是类Win32FileSyste

     //分析fs.normalize方法的返回值应为””

    this.path = fs.normalize(pathname);

     //分析fs.prefixLength方法的返回值应为0

    this.prefixLength = fs.prefixLength(this.path);

}

 

//getAbsolutePath方法

该方法中直接调用fs.resolve(this);代码如下

//返回this.prefixLength,即为0

int pl = f.getPrefixLength();

    if ((pl == 2) && (path.charAt(0) == slash))

        return path;         /* UNC */

    if (pl == 3)

        return path;         /* Absolute local */

    if (pl == 0)

         // getUserPath()方法主要是从System.getProperty("user.dir")取得目录

        return getUserPath() + slashify(path); /* Completely relative */

 

new File(".").getAbsolutePath()与上面的类似

fs.normalize方法的返回值应为”.”

fs.prefixLength的返回值为0

new File("aaa").getAbsolutePath()的目录也是user.dir/aaa

new File("", "aaa")时,""是parent

值为:

 public String getDefaultParent() {
 return ("" + slash);
    }

//初始化如下

public File(String parent, String child) {
 if (child == null) {
     throw new NullPointerException();
 }
 if (parent != null) {
     if (parent.equals("")) {

         //空的情况,需要注意的是如果传入的是".",则要走到else里面
          this.path = fs.resolve(fs.getDefaultParent(),
           fs.normalize(child));
     } else {

          //包括.的情况
          this.path = fs.resolve(fs.normalize(parent),
           fs.normalize(child));
     }
 } else {

     //null的情况
     this.path = fs.normalize(child);
 }
 this.prefixLength = fs.prefixLength(this.path);
    }

分享到:
评论

相关推荐

    matlab开发-NewFile

    在MATLAB开发过程中,"NewFile"项目显然与创建新的MATLAB源代码文件有关。MATLAB是一种强大的数学计算环境,广泛用于数值分析、符号计算、数据可视化和算法开发。在这个项目中,我们可以看到几个关键文件,它们对于...

    new file_words_document_

    标题中的“new file_words_document_”可能表示这是一个关于文件处理、文字文档或可能是新创建的文档教程。描述中的“Description again”虽然没有提供具体信息,但暗示我们将讨论一个与文件内容或描述有关的主题。...

    new_file.zip

    标题 "new_file.zip" 暗示我们正在处理一个压缩文件,它采用了ZIP格式,这是一种广泛使用的文件归档格式,允许将多个文件和文件夹打包成一个单一的可下载单元,便于存储、传输和分享。ZIP文件通过压缩数据来节省磁盘...

    newfile

    【标题】"newfile" 指的可能是一个新建或更新的文件,这在IT行业中很常见,尤其是在软件开发过程中。文件名“newfile”暗示它可能是开发过程中的一个初始版本或者是某个项目的最新迭代。 【描述】"新文件" 这个描述...

    利用ArcGis API解析FileGDB

    - **处理结果**:将查询结果转换为JSON或其他格式,便于进一步分析或展示。 **4. 示例代码** 以下是一个简单的JavaScript示例,演示如何使用ArcGIS API读取FileGDB中的数据: ```javascript require([ "esri/Map...

    new-file.zip_Leach_leach tcl_leach tcl file_steps

    5. **收集和分析结果**:记录和分析每个节点的能量消耗、数据包传输成功情况等。 6. **结果展示**:可能使用图表展示仿真结果,如平均簇头生命周期、网络生存时间等。 通过理解LEACH协议的工作原理和TCL脚本的实现...

    C# File文件操作

    if (File.Exists("newExample.txt")) { File.Delete("newExample.txt"); } ``` 对于更复杂的文件操作,如读写大文件或需要更多控制的流操作,可以使用`FileStream`和`StreamReader`/`StreamWriter`类。这些类允许...

    NewFile.txt

    历年系统架构设计师考试试题分类精解(案例分析与论文篇) 历年系统架构设计师考试试题分类精解(综合知识篇) 软件体系结构原理、方法与实践_第2版 历年真题 系统架构设计师考试资料 系统架构师视频教程

    在vb中利用file system object (fso)建立文件和文件夹

    #### 四、代码分析 1. **初始化FSO**:在项目中声明一个全局的`FileSystemObject`对象,以便在任何地方都能访问到这个对象。 2. **Form_Load事件**:当窗体加载时,会检查指定路径下的文件夹是否已存在,如果不...

    File System Forensic Analysis

    在"File System Forensic Analysis"一书中,作者可能会详细讲解这些技术,包括如何利用专业工具进行取证分析,以及如何解释和解读分析结果。 在实际的取证过程中,可能会遇到文件覆盖、碎片化、加密等问题。文件...

    libpng error not a png file

    File file = new File("path_to_your_file.png"); if (isPNG(file)) { System.out.println("The file is a PNG."); } else { System.out.println("The file is not a PNG."); } } } ``` 这段代码首先读取...

    N_newFile.rar_提取cad模型空间块表

    标题中的“N_newFile.rar_提取cad模型空间块表”表明这是一个关于AutoCAD软件的工具或脚本,用于从模型空间中提取块表。在AutoCAD中,块(BLOCK)是一种可以重复使用的图形对象集合,通常用于创建标准的组件或图案。...

    new-file.rar_MPI_operation

    通过对“new-file”源代码的分析,我们可以深入理解如何利用MPI实现高效的向量操作,例如如何划分任务给不同进程、如何设计并行算法以减小通信开销、如何利用归约操作进行全局计算等。这些细节对于理解和优化并行...

    Day36 Java的file类

    File file1 = new File("C:\\Users\\Documents\\example.txt"); ``` 2. **File(String parent, String child)**:根据父路径字符串和子路径字符串创建一个`File`实例。 - 示例: ```java File file2 = new ...

    文件检索filecheck

    file = new File(t1.getText()); Object[][] data = new Object[1][7]; if (!file.exists()) return; v.removeAllElements(); Vector v1 = new Vector(); v1.addElement(file.getName()); // 获取文件名 ...

    android webview input=file 失效解决方案

    ### 问题分析 1. **安全策略限制**:Android的WebView遵循Chrome的同源策略,不允许跨域访问,包括本地文件系统。出于安全考虑,`input=file`选择文件的API被禁用或限制。 2. **文件选择器缺失**:在一些Android...

    File merge文件合并

    File file1 = new File("file1.txt"); File file2 = new File("file2.txt"); File outputFile = new File("mergedFile.txt"); try (BufferedReader reader1 = new BufferedReader(new FileReader(file1)); ...

    对File的各种操作

    分析这个文件可以帮助你更好地理解如何在实际项目中应用`File`类的方法。在编写代码时,记得处理可能出现的异常,如`FileNotFoundException`、`IOException`等,并确保在操作完成后关闭打开的流。

    Java File 类的使用方法详解

    本文将对Java File文件操作类进行详细地分析,并将File类中的常用方法进行简单介绍,有需要的Java开发者可以看一下。  构造函数  public class FileDemo  {  public static void main(String[] args)  { ...

    File writeTo File

    File source = new File("源文件路径"); File dest = new File("目标文件路径"); FileInputStream fis = new FileInputStream(source); FileOutputStream fos = new FileOutputStream(dest); byte[] buffer =...

Global site tag (gtag.js) - Google Analytics