从java中的网站打开一个文件

时间:2012-06-29 03:35:26

标签: java

具体来说,我正在尝试从SharePoint打开一个文件,但它实际上只是一个网站,我有正确的访问权限,所以“不是问题。我试图在java中使用桌面api打开它,但它给我一个错误消息“文件不存在!”桌面只能在本地运行吗?如果它适用于网站,我做错了什么?

基于stephen c的建议的新代码,但它仍然不起作用。我错过了什么?

public class ParseURL {
        public static void main(String[] args) throws Exception {
            try {
            URL url = new URL("http://wss/is/sites/itsd/network/Remote%20Access/Soft%20Tokens/Your%20new%20RSA%20Soft%20Token%20for%20Android%20-%20INC%20XXXXXXX.oft"); 
            InputStream is = url.openStream(); 
            is.close();
            } catch(IOException err) { 
              }
        }
    }

旧代码

 public static void main(){

        try {

            File oftFile = new File("http://wss/is/sites/itsd/network/Remote%20Access/Soft%20Tokens/Your%20new%20RSA%20Soft%20Token%20for%20Android%20-%20INC%20XXXXXXX.oft
");
            if (oftFile.exists()) {

                if (Desktop.isDesktopSupported()) {
                    Desktop.getDesktop().open(oftFile);
                } else {
                    System.out.println("Awt Desktop is not supported!");
                }

            } else {
                System.out.println("File does not exist!");
            }

            System.out.println("Done");

          } catch (Exception ex) {
            ex.printStackTrace();
          }
    }
    }

3 个答案:

答案 0 :(得分:1)

尝试使用HttpURLConnection

这是一个网址,您需要连接到网址并从连接中获取的内容中读取内容。

请参阅Usage此处

答案 1 :(得分:0)

似乎这样会有所帮助:

How to send HTTP request in java?

我相信File会查看你的本地文件系统。

答案 2 :(得分:0)

File类用于表示本地/本地安装的文件系统上存在的文件的名称/路径。你给它一个URL,那不是文件或路径名。

您应该使用URLURI类,并尝试通过打开连接来阅读它...

相反,为您提供剪切和粘贴的封装示例,我建议您阅读t he relevant parts of the Java Tutorials


  

所以我读了教程,但是如何从网址打开文件?这不只是我试图读取数据,而是想在Outlook中打开oft文件。

啊......所以“打开”你的意思是“用文件查看器启动一个单独的窗口”。

在这种情况下,您的代码是正确的方法,但您不能使用File.exists()来测试URL是否存在。如果您拥有的只是“http:”,则需要尝试按照教程中的示例代码使用URL.openStream()打开文件,并将异常解释为该文件是否存在。 (HTTP 404响应变为FileNotFoundException,但其他IOException也是可能的。)不要忘记close()流,否则您的代码将泄漏文件描述符。

事实上,您最好不要尝试测试URL是否存在。只是尝试“打开”它并诊断异常。