服务器将空文件发送到客户端

时间:2014-04-21 21:41:02

标签: java sockets file-transfer

服务器端代码

int count=-1;
byte [] mybytearray  = new byte [1024];

BufferedInputStream bis = new BufferedInputStream(new FileInputStream(myFile));
os = s.getOutputStream();

System.out.println("Sending " + fileName + "(" + mybytearray.length + " bytes)");
while( (count=(bis.read(mybytearray)))>0) {
    System.out.println(count);
    os.write(mybytearray,0,count);
    os.flush();
}
System.out.println("Done.");                      
bis.close(); 
os.close();

客户端代码

int bytesRead=-1;
byte [] mybytearray  = new byte [1024];
InputStream isP = p2p.getInputStream();
 FileOutputStream fos = new FileOutputStream(path+"RFC "+rfcNum+".txt");
while((bytesRead=isP.read(mybytearray))>0) {
fos.write(mybytearray, 0, bytesRead);
fos.flush();
fileSize+=bytesRead;
 } 
System.out.println("file Size is "+fileSize);
isP.close();
fos.close();

我从服务器到客户端获取一个空文件。即使在服务器上,它打印的字节数也不为零。有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

  

我从服务器到客户端获取一个空文件。

使用该代码,服务器上的文件也必须为空。

  

即使在服务器上,它打印的字节数大小也不为零。

这是因为您将其初始化为新字节[1024]'。它与文件的长度无关。