当前位置: 首页 > 知识库问答 >
问题:

使用Java获取diff计算机上的资源

阙新觉
2023-03-14
 private static final String FILE_PATH = "MessageCompare\\src\\main\\resources\\json\\test.json";` 

 File file = new File(FILE_PATH);

 BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file.getAbsolutePath())));`

在我的电脑中,文件。getAbsolutePath()返回D:\Dev\Tool\MessageCompare\MessageCompare\src\main\resources\json\test。json

在其他计算机中,file.getAbsoltePath()返回
D:\Dev\Tool\MessageCompare\src\main\Resources\json\test.json

为什么文件的绝对路径比别人的计算机多返回一个节点?

共有3个答案

松桐
2023-03-14
File file = new File(FILE_PATH);

此行创建一个文件。文件的路径取决于您的项目文件夹和设置。如果您的工作站包含另一个名为“MessageCompare”的文件夹,并且您的项目设置在该文件夹中,这可能是您获得额外节点的原因。

邬飞捷
2023-03-14

出于这个原因,您不应该依赖文件的绝对路径,这完全取决于其他人运行代码的位置。在您的情况下,还有一个额外的MessageCompare目录。

相反,使用类加载器加载文件:

<代码>MyClass。班getResourceAsStream(“/myFile.txt”)

这样,您的代码将更具可移植性。

广亮
2023-03-14

最好使用相对路径来保证跨平台。

通常有两种获取资源的方法

  1. getClass()。getResourceAsStream()

有什么区别?请注意此结构

  1. 关于#1,它使用:InputStream in=getClass()。getResourceAsStream(“/json/rti.json”)
  2. 对于#2,它使用:InputStream in=getClass()。getClassLoader()。getResourceAsStream(“json/rti.json”)
 类似资料:
  • 问题内容: 我可以用 获取mac地址,但是如果我在离线计算机上使用此代码,它将无法正常工作。 那么,如何获得Mac地址? 问题答案: 在Java 6+中,你可以使用。 请记住,计算机不能有网卡,尤其是嵌入式或虚拟的网卡。它也可以有多个。你可以使用来获取所有网卡的列表。

  • 问题内容: 我想知道是否有一种方法可以用Java获取计算机名称?我已经看到了该功能的几个答案。但是我想知道是否存在不使用网络的方法? (作为一个附带的问题,计算机名称是否仍然只是一个网络事物,因此必须以这种方式进行??) 问题答案: 操作系统的基础DNS(域名系统)库从IP地址 解析 计算机“名称”。跨操作系统没有通用的计算机名称概念,但DNS通常可用。如果尚未配置计算机名称,以便DNS可以解析它

  • 问题内容: 我正在尝试开发一个系统,其中有不同的节点在不同的系统或同一系统的不同端口上运行。 现在,所有节点都使用目标IP创建一个套接字,该目标IP是称为自举节点的特殊节点的IP。然后,节点创建自己的节点并开始侦听连接。 引导节点维护节点列表,并在查询时返回它们。 现在,我需要的是该节点必须将其IP注册到引导节点。一旦客户端连接到节点,我就尝试使用该方法,但这没有用。 我需要客户端注册其PPP I

  • 问题内容: 我需要在Java项目中获取资源映像文件。我正在做的是: 目录结构如下: 事实是,我总是会得到该文件不存在的信息。我尝试了许多不同的方法,但无法解决问题。有什么提示吗? 问题答案: 前导斜杠表示类路径的根 斜线而不是路径中的点 你可以getResource()直接在课堂上致电。

  • 如果使用的两个数字和运算符存储在变量中(用户输入),如何返回计算结果。 我正在创建一个简单的计算器,并试图输出“Number”“Operator”“Number2”的答案,根据用户输入的内容,答案可以是任何内容。 当输入这些数字和运算符时,输出返回“5 5=5 5”,我试图返回“5 5=10”。

  • 本文向大家介绍C#程序获取计算机上的内核总数,包括了C#程序获取计算机上的内核总数的使用技巧和注意事项,需要的朋友参考一下 使用Environment.ProcessorCount获取计算机上的内核总数- 以下是显示使用C#的计算机上的内核总数的代码- 示例