0
我有一个客户端和一个服务器。服务器维护一个文件,客户端为它做请求。 所以,我做的是通过java中的套接字发送文件
File CONFIGURATION_FILE=new File(configuration.doc);
System.out.println (CONFIGURATION_FILE.exist()); //return true
in=new BufferedReader(new InputStreamReader(socket.getInputStream()));
oos=new ObjectOutputStream(socket.getOutputStream());
String line;
while ((line=in.readLine())!=null) {
if (line.equals("configuration file"))
oos.writeObject(CONFIGURATION_FILE);
oos.flush();
}
}
当我在客户端上接收文件时,它抛出IOException。如果我在创建文件时传递绝对路径,程序将工作(客户端和服务器暂时在同一台计算机上,所以我认为通过套接字传递的是对路径的引用,并且客户端和服务器可以看到)。我的问题是:是否可以通过套接字通道直接发送一个文件作为对象,或者我必须将其转换为一个字节数组并发送此数组?预先感谢您
File对象是文件和目录路径名的抽象表示('javadoc)。所以不,你不能通过套接字发送它。您可以使用NIO来简化流的处理。 – meskobalazs
'File'确实应该叫做'Path',但现在修复它已经太迟了。 – immibis