通过插座传输文件
问题描述:
答
老实说,虽然我感到很难做你的功课,我只是一个好心情:)
在下面的代码(FileReciever)我已经添加了从第一个参数initalized一个新的变量文件夹传递给main()。所以你想保存文件的文件夹的名称会作为第一个参数传递。我改变的唯一的其他行是: 文件文件=新文件(文件夹,文件名);
private String folder = "";
public static void main(String[] args) {
try {
folder = args[0];
ServerSocket listener = new ServerSocket(port);
while (true) {
FileReceiver file_rec = new FileReceiver();
file_rec.socket = listener.accept();
new Thread(file_rec).start();
}
}
catch (java.lang.Exception ex) {
ex.printStackTrace(System.out);
}
}
public void run() {
try {
InputStream in = socket.getInputStream();
int nof_files = ByteStream.toInt(in);
for (int cur_file=0;cur_file < nof_files; cur_file++) {
String file_name = ByteStream.toString(in);
File file=new File(folder, file_name);
ByteStream.toFile(in, file);
}
}
catch (java.lang.Exception ex) {
ex.printStackTrace(System.out);
}
}
非常感谢你。那么认为它是一个家庭作业,但它是一个非常小的一部分,我问,因为在过去,我一直有问题的文件夹路径,所以我喜欢的东西,如 ByteStren.toFile(folfer +文件);但你知道......它会起作用。不知道java.io.file的文档。 另一个问题。似乎发件人不会从任何文件夹发送,而只是默认发送。你知道为什么吗? 我给出一个参数/home/user/test.txt并且没有错误但仍然不起作用。 任何想法?我很感激并感谢你。 – storedope 2010-01-09 10:24:21