Java连接不起作用

时间:2017-02-08 12:26:04

标签: java string concatenation string-concatenation

此代码应获取绝对路径,从首选项文件追加一个字符串,然后附加" .json"匹配必要的文件。我尝试使用" +"连接字符串,但它提供与StringBuilder.append()

相同的输出
    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));

这是我的控制台输出:

=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)

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

1 个答案:

答案 0 :(得分:0)

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

choice

在此输出中,您可以看到String 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= 已正确设置(尽管您可能不打算使用尾随'=')。

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

file

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

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());

请参阅Paths API上的Java教程:

http://macappstore.org/wkhtmltopdf/