我是Java新手,正在尝试构建一个FX应用程序。我的一个函数旨在用其他字符串替换某些字符串。只要我定义了目标文件的绝对路径,脚本就可以正常工作,但当我使用相对路径时,脚本就会中断。
问题出在方法“ReadAllBytes”中,该方法只适用于完整路径。但是我需要相对路径,因为文件夹位置会有所不同。
目标文件位于项目文件夹中。是否有其他方法可以用来读取文件内容,而不需要绝对路径?
提前多谢。下面是代码片段:
if (checkbox.isSelected()) {
//this works .....
Path path = Paths.get("//home/../../../../Target.fxml")
Charset charset = StandardCharsets.UTF_8;
String content = new String(Files.readAllBytes(path));
content = content.replaceAll("text_old" , "text_new");
Files.write(path, content.getBytes(charset));
//this doesn't work...
Path path = Paths.get("Target.fxml");
Caused by: java.nio.file.NoSuchFileException: Target.fxml
异常根源java.nio.file.nosuchFileException:target.fxml
确实意味着该文件不存在于给定位置。
如果您正在执行paths.get(“target.fxml”)
,您将在当前工作目录中查找文件target.fxml
。但是,由于文件位于src/javafxapplication/target.fxml
中,并且程序是从另一个目录运行的,target.fxml
无法找到。
您可以使用以下方法检查应用程序的工作目录:
System.out.println(System.getProperty("user.dir")));
Paths.get("../src/javafxapplication/Target.fxml")
但是,这是一种不好的做法,因为src
文件夹通常不是分发包的一部分。您可能应该将target.fxml
复制到另一个位置,或者使用Apache Maven之类的构建工具创建一个包含target.fxml
的jar文件,并使用classloader.getResource()
从jar文件中读取内容。
问题内容: 我是Java的新手,正在尝试构建FX应用程序。我的功能之一是用其他字符串替换某些字符串。只要我定义目标文件的绝对路径,脚本就可以正常工作,但是当我使用相对路径时,脚本就会中断。 问题出在方法“ readAllBytes”中,该方法仅适用于完整路径。但是我需要相对路径,因为文件夹位置会有所不同。 目标文件在项目文件夹中。是否可以使用其他方法读取文件内容,而无需绝对路径? 非常感谢。以下是
稳定性: 2 - 稳定的 path 模块提供了一些工具函数,用于处理文件与目录的路径。可以通过以下方式使用: const path = require('path'); Windows 与 POSIX path 模块的默认操作会根据 Node.js 应用程序运行的操作系统的不同而变化。 比如,当运行在 Windows 操作系统上时,path 模块会认为使用的是 Windows 风格的路径。 例如
该类定义了二维路径,提供了一些类似2D Canvas API的方法来创建或者构造二维路径。 代码示例 const path = new THREE.Path(); path.lineTo( 0, 0.8 ); path.quadraticCurveTo( 0, 1, 0.2, 1 ); path.lineTo( 1, 1 ); const points = path.getPoints(); co
本文向大家介绍Linux 相对路径和绝对路径的使用,包括了Linux 相对路径和绝对路径的使用的使用技巧和注意事项,需要的朋友参考一下 01. 概述 绝对路径和相对路径在shell环境中经常遇到,各有用处。有时候相对路径比较方便,有时候绝对路径比较方便。 02. 绝对路径(Absolute Pathname) 绝对路径必定由**/**开头 绝对路径是为档案/文件的所在位置做指向 在任何时候,都可以
问题内容: Popen的文档提到您不能指定相对于“更改工作目录” kwarg的可执行路径。 如果不是None,则子目录的当前目录将在执行之前更改为 。 请注意,搜索可执行文件时不会考虑此目录,因此您无法指定程序相对于的路径。 但是python在我的系统上的行为似乎与这种说法直接矛盾: 是否在使用相对路径来依赖于平台且不应依赖的东西?还是这是一个文档错误? (从评论这个问题产卵由glglgl这里
问题内容: 如果使用绝对路径,则无法将整个目录移动到新位置。如果使用相对路径,则无法将单个文件移动到新位置。 这里有什么解决方案?您是否设置了一个包含根路径并从那里开始的配置文件?还是您有类似的规则:永不移动文件? 我在某些项目中看到人们使用dirname( FILE )。我的意思是,为什么不简单地将其删除,因为目录名还是相对的(取决于文件所在的位置)? 问题答案: 您应该使用一个配置文件,该配置