使用Java小程序不能读取文本文件

问题描述:

当我尝试使用JApplet和Java Web Start读取文本文件时,我遇到了一个问题,基本上我有一个带有用户数据的文件,我希望读取它。文本文件存储在Web服务器上。下面是代码:使用Java小程序不能读取文本文件

company.readCompanyFile("file:///C:/Users/Chris/Desktop/ArFile Clients/" + companyName + "/" 
        + companyName + ".cmp"); 

和readCompanyFile功能:

public void readCompanyFile(String cname) 
{ 
    try 
    { 
     BufferedReader br = new BufferedReader(new FileReader(cname)); 

     name = br.readLine(); 
     quota = Float.parseFloat(br.readLine()); 

     String s; 
     while ((s = br.readLine()) != null) 
     { 
      String[] parts = s.split(":"); 

      metadataFields.add(parts); 
     } 

     br.close(); 
    } 
    catch(IOException e) 
    { 
     System.out.println("File does not exist, or has invalid format"); 
    } 
} 

会抛出试图通过Java Web启动开始

BadFieldException[ The field <extension>href has an invalid value: C:\Users\Chris\Desktop\ArFile Clients,C:\Users\Chris\Desktop\ArFile Clients] 
    at com.sun.javaws.jnl.XMLUtils.getAttributeURL(Unknown Source) 
    at com.sun.javaws.jnl.XMLUtils.getRequiredURL(Unknown Source) 
    at com.sun.javaws.jnl.XMLFormat.handleResourceElement(Unknown Source) 
    at com.sun.javaws.jnl.XMLFormat.access$800(Unknown Source) 
    at com.sun.javaws.jnl.XMLFormat$2$1.visitElement(Unknown Source) 
    at com.sun.javaws.jnl.XMLUtils.visitChildrenElements(Unknown Source) 
    at com.sun.javaws.jnl.XMLFormat$2.visitElement(Unknown Source) 
    at com.sun.javaws.jnl.XMLUtils.visitElements(Unknown Source) 
    at com.sun.javaws.jnl.XMLFormat.buildResourcesDesc(Unknown Source) 
    at com.sun.javaws.jnl.XMLFormat.parse(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptorFromCache(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptorFromCache(Unknown Source) 
    at sun.plugin2.applet.JNLP2Manager.initialize(Unknown Source) 
    at sun.plugin2.main.client.PluginMain.initManager(Unknown Source) 
    at sun.plugin2.main.client.PluginMain.access$200(Unknown Source) 
    at sun.plugin2.main.client.PluginMain$2.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Error while initializing manager: BadFieldException[ The field <extension>href has an invalid value: C:\Users\Chris\Desktop\ArFile Clients,C:\Users\Chris\Desktop\ArFile Clients], bail out 

的文本文件时,出现以下错误存储在Web服务器上。

...而小程序在客户端计算机上运行。如何读取文件?

您必须通过网络访问它,例如通过HTTP(将它放在服务器上的小程序旁边)。

此外,stacktrace似乎与您的代码没有任何关系。看起来Webstart无法解析部署描述符(可能也是因为引用了服务器磁盘上的文件)。

+0

好的,谢谢一堆,我会试一试! 我的网络服务器目前在我的机器上运行,但是在他的地址: file:/// C:/Users/Chris/Documents/NetBeansProjects/ArFile/dist/launch.html 那么这是否意味着我应该复制ArFile客户端文件夹从问题到这个本地目录,并调整文件路径,而不是类似http:// ArFile客户端+ companyName +“/” + companyName +“.cmp”); ?? –