问题:我的文件未启动从服务器请求的文件。
好吧我已经编写了一个服务器/客户端应用程序,但问题是当我从服务器请求文件时它转移到客户端但我注意到我需要手动刷新目录以获取文件到在路径或目录中。所以说,我觉得这就是为什么我的代码在请求它没有启动的文件时。
我的方法是在刚刚请求后从客户端启动文件。
以下是我的代码:
public static void receiveFile(String fileName) {
try {
int bytesRead;
InputStream in = sock.getInputStream();
DataInputStream clientData = new DataInputStream(in);
fileName = clientData.readUTF();
OutputStream output = new FileOutputStream((fileName));//need to state a repository
long size = clientData.readLong();
byte[] buffer = new byte[1024];
while (size > 0 && (bytesRead = clientData.read(buffer, 0, (int) Math.min(buffer.length, size))) != -1) {
output.write(buffer, 0, bytesRead);
size -= bytesRead;
}
output.close();
in.close();
File file = new File(fileName);
Desktop.getDesktop().open(file);
//System.out.println("File "+fileName+" received from Server.");
} catch (IOException ex) {
//Logger.getLogger(CLIENTConnection.class.getName()).log(Level.SEVERE, null, ex);
ex.printStackTrace();
}
}
请你看看你认为我做错了什么? 服务器代码:
答案 0 :(得分:0)
在关闭前尝试冲洗流。
output.flush();
output.close();
答案 1 :(得分:0)
我自己解决了,答案是使用下面的代码:
replace:Desktop.getDesktop()。open(file);
with:Runtime.getRuntime()。exec(" rundll32 url.dll,FileProtocolHandler" + file);