2010-01-07 75 views
4

我发现这个code女巫我试过了,它很好用,但(!)。我想将文件存储在我将要选择的文件夹中,并从我将再次选择的文件夹中获取。由于发件人得到一个参数,我想如果我给一个像/home/user/test.txt这样的参数,那就没问题,它会工作正常,但我不知道如何将文件存储到特定的文件夹(换句话说,服务器部分)。有任何想法吗?通过插座传输文件

如果我错了有关参数,请通过各种手段纠正我:d

PS:这只是正常的NetBeans的默认文件夹(发送器或服务器没有文件夹的规范)。

任何帮助表示赞赏。

回答

5

老实说,虽然我感到很难做你的功课,我只是一个好心情:)

在下面的代码(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); 
} 

}

+0

非常感谢你。那么认为它是一个家庭作业,但它是一个非常小的一部分,我问,因为在过去,我一直有问题的文件夹路径,所以我喜欢的东西,如 ByteStren.toFile(folfer +文件);但你知道......它会起作用。不知道java.io.file的文档。 另一个问题。似乎发件人不会从任何文件夹发送,而只是默认发送。你知道为什么吗? 我给出一个参数/home/user/test.txt并且没有错误但仍然不起作用。 任何想法?我很感激并感谢你。 – storedope 2010-01-09 10:24:21