我发现我尝试过的这个代码女巫并且效果很好但是(!)。我想将文件存储在我将选择的文件夹中,并从我将再次选择的文件夹中获取它。由于发件人得到一个参数,那么我想如果我给出一个像 /home/user/test.txt 这样的参数,那没关系,它会正常工作,但我不知道如何将文件存储到特定文件夹(换句话说,服务器部分)。有任何想法吗?
如果我的论点有误,请务必纠正我:D
PS:它适用于 Netbeans 的默认文件夹(没有指定 Sender 或 Server 的文件夹)。
任何帮助表示赞赏。
我发现我尝试过的这个代码女巫并且效果很好但是(!)。我想将文件存储在我将选择的文件夹中,并从我将再次选择的文件夹中获取它。由于发件人得到一个参数,那么我想如果我给出一个像 /home/user/test.txt 这样的参数,那没关系,它会正常工作,但我不知道如何将文件存储到特定文件夹(换句话说,服务器部分)。有任何想法吗?
如果我的论点有误,请务必纠正我:D
PS:它适用于 Netbeans 的默认文件夹(没有指定 Sender 或 Server 的文件夹)。
任何帮助表示赞赏。
坦白说,虽然我对做你的作业感觉不好,但我心情很好:)
在下面的代码(FileReciever)中,我添加了一个新的变量文件夹,它是从传递给 main() 的第一个参数初始化的。因此,您要保存文件的文件夹的名称必须作为第一个参数传递。我唯一更改的另一行是: File file=new File(folder, file_name);
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);
}
}