【发布时间】:2014-09-22 05:03:47
【问题描述】:
我已经编写了一个在 Java 套接字中传输文件的代码,但我想扩展它。我想选择我想要的文件。而且一行代码看不懂:
byte[] mybytearray = new byte[(int) myFile.length()];
这是我的真实代码:
import import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Main {
public static void main(String[] args) throws IOException {
ServerSocket servsock = new ServerSocket(123456);
File myFile = new File("s.pdf");
while (true) {
Socket sock = servsock.accept();
byte[] mybytearray = new byte[(int) myFile.length()];
BufferedInputStream bis = new BufferedInputStream(new FileInputStream(myFile));
bis.read(mybytearray, 0, mybytearray.length);
OutputStream os = sock.getOutputStream();
os.write(mybytearray, 0, mybytearray.length);
os.flush();
sock.close();
}
}
}
客户端模块:
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.net.Socket;
public class Main {
public static void main(String[] argv) throws Exception {
Socket sock = new Socket("127.0.0.1", 123456);
byte[] mybytearray = new byte[1024];
InputStream is = sock.getInputStream();
FileOutputStream fos = new FileOutputStream("s.pdf");
BufferedOutputStream bos = new BufferedOutputStream(fos);
int bytesRead = is.read(mybytearray, 0, mybytearray.length);
bos.write(mybytearray, 0, bytesRead);
bos.close();
sock.close();
}
}
【问题讨论】:
-
你不明白什么?你问什么是数组?
-
它创建一个字节数组。
-
如果您不理解代码。那你怎么说你写了这段代码。
-
如果您有新问题,请在新问题中提出该问题,而不是编辑此问题。这里的答案是针对revision 2 的答案,它与revision 4 完全不同。
标签: java sockets file-upload file-transfer