首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java级联不起作用

Java级联不起作用
EN

Stack Overflow用户
提问于 2017-02-08 12:26:03
回答 1查看 161关注 0票数 0

这段代码应该获得绝对路径,从preferences文件中追加一个字符串,然后追加".json“以匹配所需的文件。我尝试使用"+“连接字符串,但它提供的输出与StringBuilder.append()相同

代码语言:javascript
复制
    StringBuilder pt= new StringBuilder(path);
    pt.append(System.getProperty("file.separator"));
    pt.append("lib");
    pt.append(System.getProperty("file.separator"));
    pt.append("ling");
    pt.append(System.getProperty("file.separator"));
    String lingua =PrefManager.getPref("lingua")+("=");
    System.out.println(lingua);
    pt.append(lingua);
    System.out.println("com extensão"+pt.toString());
    String file = pt.toString();
    System.out.println(file);
    System.out.println(file);
    Object obj = parser.parse(new FileReader(file));

这是我的控制台输出:

代码语言:javascript
复制
=t-br
=om extensão/home/mateus/BrinoBuildScript/Filesx64/lib/ling/pt-br
=home/mateus/BrinoBuildScript/Filesx64/lib/ling/pt-br
=home/mateus/BrinoBuildScript/Filesx64/lib/ling/pt-br
java.io.FileNotFoundException: /home/mateus/BrinoBuildScript/Filesx64/lib/ling/p= (No such file or directory)

一个变量如何能够有三个不同的输出来控制台?我该怎么做才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-08 13:29:02

马特乌斯您的控制台输出正在第一列上打印行的最后一个字符。正确呈现的控制台输出应该如下所示:

代码语言:javascript
复制
pt-br=
com extensão\home\mateus\BrinoBuildScript\Filesx64\lib\ling\pt-br=
\home\mateus\BrinoBuildScript\Filesx64\lib\ling\pt-br=
\home\mateus\BrinoBuildScript\Filesx64\lib\ling\pt-br=

在这个输出中,您可以看到字符串file是正确设置的(尽管您可能不打算使用尾随'=')。

当您小心使用系统路径分隔符时,连接有点笨拙。如果您使用的是Java的旧版本,ou可能会尝试使用File类编写路径:

代码语言:javascript
复制
final String path = "\\home\\mateus\\BrinoBuildScript\\Filesx64";
final File libFolder = new File(path, "lib");
final File lingFolder = new File(libFolder, "ling");
final File languageFolder = new File(lingFolder, PrefManager.getPref("lingua"));
System.out.println(languageFolder.getAbsolutePath());

如果您使用的是最近版本的Java,您可以使用路径API (它确实处理特定于平台的路径分隔符):

代码语言:javascript
复制
final Path p = Paths.get(path, "lib", "ling", PrefManager.getPref("lingua"));
System.out.println(p);

请参阅有关路径API的Java教程:

https://docs.oracle.com/javase/tutorial/essential/io/pathOps.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42113098

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档