如何从任何计算机读取文件(Java)

时间:2015-09-25 19:53:28

标签: java file classpath bufferedimage

目前我的程序中有这样的代码:

BufferedImage ReadPicture = null;
            try {
                ReadPicture = ImageIO.read(new File("C:/Users/John/Documents/NetBeansProjects/Program5/build/classes/Program5/Pictures/TestPicture.png"));
            } catch (IOException e) {
            }

如果我将文件编译为jar并将其提供给其他人,则该程序不起作用,因为类路径特定于我的计算机。如何更改文件/图像的访问方式,以便它可以在所有计算机上运行?

2 个答案:

答案 0 :(得分:1)

特别是对于 stream = urllib2.urlopen('http://www.google.com') start_time = time() output = stream.read() end_time = time() stream.close() print "Ping in ms = %r:" % (round(end_time-start_time, 3)) ,如果您总是想从类路径中读取图像,而不考虑类路径实际是什么,那么您可以这样做:

ImageIO

这取决于BufferedImage readPicture = null; URL imageUrl = getClass().getClassLoader().getResource( "/Program5/files/Pictures/TestPicture.png"); // Or // InputStream imageStream = getClass().getClassLoader().getResourceAsStream( // "/Program5/files/Pictures/TestPicture.png"); // null if not found try { readPicture = ImageIO.read(imageUrl); // null if the image format is unrecognized } catch (IOException e) { // ... } 可以通过URL获取图像的事实。即使图像打包在Jar文件中,也可以使用此方法,与您的类(或不是)一起打包。

答案 1 :(得分:0)

您可以在项目中添加一个文件夹,命名文件或任何您想要的文件。您可以在其中创建子目录并在其中排列文件。当您与他人共享时,它们将可用。在下面的代码中,& #34;"代表工作目录。所以确保你提供的目录结构是正确的。尝试这样的事情。

BufferedImage ReadPicture = null;
try {
         ReadPicture = ImageIO.read(new File("./files/Pictures/TestPicture.png"));

     } catch (IOException e) {
     }

另见