1

ネットワーク パスに wav ファイルがあり、そのフォルダーから \192.106.100.35\Recorded files として実行してアクセスできます。536.wav ファイルにアクセスする必要があります

コード

File file = new File("file://192.106.100.35/Recorded%20files/536.wav");
    FileInputStream fis;
    byte[] buffer=null;

fis = new FileInputStream(file);
buffer= new byte[fis.available()];
fis.read(buffer);
fis.close();

しかし与える

java.io.FileNotFoundException: file:\192.106.100.35\Recorded%20files\536.wav (The filename, directory name, or volume label syntax is incorrect)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(Unknown Source)
    at com.pointel.chart.PlayAudio.doGet(PlayAudio.java:39)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
Oct 31, 2013 5:51:02 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet PlayAudio threw exception
java.lang.NullPointerException
    at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:83)
    at com.pointel.chart.PlayAudio.doGet(PlayAudio.java:62)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)

どんな助けでも大歓迎です

4

2 に答える 2

1

java.io.Fileローカルハードディスクでのみ機能します。java.net.URLネットワーク リソースの代わりに使用します。

new URL("http://192.106.100.35/Recorded%20files/536.wav");

192.106.100.35これが機能するには、HTTP プロトコルをサポートし、ファイルを次のように公開するサーバーが必要です。/Recorded%20files/536.wav

その他のオプションは、NFS または SMB です (ローカル コンピューターにリモート ファイル システムをマウントするため。後で再度使用できますFile)。

于 2013-10-31T12:46:27.277 に答える
0

短いバージョンでは、それはまったくできません。

Javadoc here おそらくこれは Windows 共有ではないでしょうか? ただし、どのように取得するかは、サーバー側によって異なります。リモートデバイス(NFS/Samba/CIFS)を実際にマウントできる場合は、このアプローチを救うことができます。しかし、それが HTTP サーバーのようなものである場合は、完全に間違ったツリーを吠えています。

于 2013-10-31T12:45:41.103 に答える