当前位置: 首页 > 面试题库 >

相对文件路径问题

终波涛
2023-03-14
问题内容

所以这是我的程序,可以正常工作:

import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.util.Scanner;
import java.util.Locale;

public class ScanSum {
    public static void main(String[] args) throws IOException {
        Scanner s = null;
        double sum = 0;
        try {
            s = new Scanner(new BufferedReader(new FileReader("D:/java-projects/HelloWorld/bin/usnumbers.txt")));
            s.useLocale(Locale.US);

            while (s.hasNext()) {
                if (s.hasNextDouble()) {
                    sum += s.nextDouble();
                } else {
                    s.next();
                }
            }
        } finally {
            s.close();
        }

        System.out.println(sum);
    }
}

如您所见,我正在使用我要读取的文件的绝对路径:

s = new Scanner(new BufferedReader(new FileReader("D:/java-projects/HelloWorld/bin/usnumbers.txt")));

当我尝试使用相对路径时会出现问题:

s = new Scanner(new BufferedReader(new FileReader("usnumbers.txt")));

我收到一个错误:

Exception in thread "main" java.lang.NullPointerException
    at ScanSum.main(ScanSum.java:24)

文件usnumbers.txt与ScanSum.class文件位于同一目录中:

D:/java-projects/HelloWorld/bin/ScanSum.class
D:/java-projects/HelloWorld/bin/usnumbers.txt

我该如何解决?


问题答案:

从哪个目录执行该类文件?(这将是相对路径的当前工作目录和基本目录。)

如果仅从eclipse启动应用程序,则项目目录将是工作目录,在这种情况下,您应该使用"bin/usnumbers.txt"



 类似资料:
  • 问题内容: 我希望我的Web应用程序使用以下路径登录文件:webapp / logs / 我可以在log4j.properties文件中设置绝对路径,但是生产环境的目录结构将有所不同。有什么办法可以做到吗? 这是我的方法: 这是将日志打印到我的eclipse目录(c:// eclipse)中名为log.log的文件中。我正在使用Tomcat 6。 问题答案: log4j能够扩展系统属性,因此,如果

  • V1.1.1新增 sp_asset_relative_url($asset_url) 功能: 获取文件相对路径 参数: $asset_url:文件URL 返回 类型字符串,带协议的绝对地址直接返回原来的值,否则会转化为相对于系统upload 目录的文件路径 实例 <?php $file='/data/upload/1.png';//文件路径 $path=sp_asset_relative_url

  • 问题内容: 这似乎是一个直接的问题。但我无法破解。在helper1.js中,我想访问foobar.json(来自) 我无法使它正常工作fs:如何找到父文件夹? 这里的任何帮助将是巨大的。 问题答案: 您可以使用该模块将所在目录的路径连接到的相对路径。这将为您提供前往的绝对路径。 假设采用UTF8编码,则此方法应可在Linux,OSX和Windows上使用。

  • 我有一个图像文件夹的相对路径的问题。我想把图片列到一个文件夹中,把它们的网址添加到列表中,并在jsp中显示出来。代码是这样的: 我试过好几条路,但都不走运。非常感谢你。

  • 问题内容: 如果使用绝对路径,则无法将整个目录移动到新位置。如果使用相对路径,则无法将单个文件移动到新位置。 这里有什么解决方案?您是否设置了一个包含根路径并从那里开始的配置文件?还是您有类似的规则:永不移动文件? 我在某些项目中看到人们使用dirname( FILE )。我的意思是,为什么不简单地将其删除,因为目录名还是相对的(取决于文件所在的位置)? 问题答案: 您应该使用一个配置文件,该配置

  • 问题内容: 当我通过相对路径引用CSS文件中的图片或其他文件时,是使用CSS文件相对于CSS文件还是HTML文件的路径? 问题答案: 是的,这是相对于 这是一个示例布局: CSS中: