通过 Java 套接字错误地传输文件



我正在尝试将XML文件从桌面服务器传输到Android客户端,但我在Android设备上只有整个文件的1024字节。我的代码是:


将文件从桌面服务器发送到 Android 客户端:

byte[] mybytearray = new byte[(int) filePianificazione.length()];
BufferedInputStream bufferedInputStream = new BufferedInputStream(new FileInputStream(filePianificazione));
bufferedInputStream.read(mybytearray, 0, mybytearray.length);
bufferedInputStream.close();
out.write(mybytearray, 0, mybytearray.length);
out.flush();

从安卓客户端接收文件到服务器:

byte[] mybytearray = new byte[1024];
FileOutputStream fos = new FileOutputStream(file.getAbsolutePath());
BufferedOutputStream bos = new BufferedOutputStream(fos);
int bytesRead = in.read(mybytearray, 0, mybytearray.length);
bos.write(mybytearray, 0, bytesRead);
bos.close();

首先声明byte[] mybytearray = new byte[1024];

然后你正在做一个单曲

int bytesRead = in.read(mybytearray, 0, mybytearray.length);
bos.write(mybytearray, 0, bytesRead);

在读取代码(Android 客户端)中,您只读取 1024 字节,因为这是输入缓冲区的长度,并且您只读取一次。你需要有一个while循环,它将继续从你的输入流中读取,然后写出来,直到你到达EOF。

像这样:

while(in.available() > 0)
{
    int bytesRead = in.read(mybytearray, 0, mybytearray.length);
    bos.write(mybytearray, 0, bytesRead);
}

在 Java 中复制流的规范方法如下:

while ((count = in.read(buffer)) > 0)
{
  out.write(buffer, 0, count);
}

相关内容

  • 没有找到相关文章

最新更新