【发布时间】:2011-06-20 15:30:39
【问题描述】:
我有一个关于使用 Java(struts2 框架)将文件(XML 文件)从我的 webapp 服务器发送到另一台服务器的简单问题。
我希望有人可以看看我的代码,因为我无法检查代码是否可以工作 - 另一台服务器(具有接收文件)仍未实现。而且我必须准备我的 webapp 服务器以最正确的方式发送文件。
我有一个 XML 文件路径,以及由 spring 框架填充的服务器地址和端口。
查看互联网上的一些示例以及这个很棒的站点中的一些其他问题,我尝试编写一个简单的代码来将我的文件发送到给定的地址。 这是代码:
private String server;
private Integer port;
// getters and settlers methods for server and port properties
public void sendXML(String fileName) throws Exception{
try{
Socket socket = new Socket(server, port);
File file = new File(fileName);
FileInputStream fis = new FileInputStream(file);
OutputStream os = socket.getOutputStream();
byte [] bytearray = new byte [(int)file.length()];
BufferedInputStream bis = new BufferedInputStream(fis);
bis.read(bytearray,0,bytearray.length);
os.write(bytearray,0,bytearray.length);
os.flush();
socket.close();
}
catch(IOException e){
e.printStackTrace();
}
}
因此,如果有人可以查看我的代码并告诉我您是否认为它不起作用,我将非常感激。如果您认为还有其他更好的方法可以做到这一点,我也将不胜感激。
谢谢大家,你们总是非常乐于助人;)
问候,
阿莱克斯
【问题讨论】:
-
'byte [] bytearray = new byte [(int)file.length()];'是个坏主意。文件可能大于 Integer.MAX_VALUE;
-
感谢您的推荐,现在我正在尝试通过Apache HttpClient4库实现发送槽。问候
标签: java sockets client-server outputstream fileinputstream