获取文件的绝对路径

JavaNoob101

所以我正在尝试使用BufferedImages,因为它们更容易使用,并且似乎加载它们有点棘手。我认为您需要绝对的路径来加载它们,并且我尝试仅执行src / Package.image.png,但是当我导出到可运行的jar时,它不起作用。这段代码可以在eclipse中运行,但是由于某些原因,当我将其导出为.jar时,它无法正常工作。

package MainGame;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;

 public class GraphicsPath {





public static String getGraphicsPath(){


    String path = null;

    PrintWriter writer = null;
    try {
        writer = new PrintWriter("text.txt");
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    path = GraphicsPath.class.getProtectionDomain().getCodeSource().getLocation().getPath();  


    System.out.println(path);

    writer.println("orignal path    " + path);

    //FOR LINUX
    String[] splited = path.split("/");


    //FOR WINDOWS
    //String[] splited = path.split("\");
    writer.println(path);


    path = path.replace("%20", " ");

    path += "MainGame/";

    writer.println(path);
    writer.close();

    System.out.println(path);
    return path;

}

}

这是text.txt导出到jar时的内容

orignal path    ./
./
./MainGame/

这是仍在Java项目中的text.txt的内容

orignal path    /home/mini/workspace/Pokemon%20Game/bin/
/home/mini/workspace/Pokemon%20Game/bin/
/home/mini/workspace/Pokemon Game/bin/MainGame/
恶魔圣塔

如果我对您的理解正确,那么您有一个需要读取的package.image.png文件,该文件位于.jar文件中。

我以前遇到过此问题,并且我认为您无法使用路径来定位此文件。在我的一个项目中,我实际上使用了URL来指定文件的位置。我会给你一个例子,说明我做了什么

所以在我的jar文件中,有一个images文件夹。说我有/images/x.png

我做这个

URL u = this.getClass().getResource( "/images/x.png" );
a=ImageIcon(u);

我用它来创建imageIcon,但是我认为您可以检查如何使用URL读取文件。

编辑:我只是试图读取文件,它的工作原理。

URL test =Class.class.getResource( "/docs/test.txt" );
BufferedReader in = new BufferedReader(new InputStreamReader(test.openStream()));

因此,您可以将InputStreamReader与其他内容包装在一起以获取图像

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章