gpt4 book ai didi

java - 如何在客户端/服务器 Java 应用程序中传输文件

转载 作者:行者123 更新时间:2023-12-01 16:01:23 25 4
gpt4 key购买 nike

我目前正在做家庭作业,但我完全陷入困境。我正在回答最后一个问题,我只是不知道如何完成最后一项任务。以下是我必须完成的任务:

<小时/>
  1. 客户端应该将文件保存在“客户端”中主目录的子目录。

  2. 测试您的程序。确保它有效包含二进制文件,而不仅仅是文本文件。确保两者都有效程序在同一台机器上以及当他们分开时网络。

<小时/>

到目前为止,当我启动服务器时,它会询问我想使用哪个端口。然后我启动客户端,它询问要使用什么 IP 和端口。服务器立即发送主目录“服务器”文件夹中的文件列表。然后,我向客户端回复我想要下载的文件编号。这就是我陷入困境的地方。我似乎找不到任何有关如何执行此操作的信息。正如您在下面发布的代码中看到的,我尝试使用 FileInputReader 将文件转换为字节数组。然后我将其发送给客户。然后我尝试将收到的字节数组 FileOutputReader 发送到文件中。但我似乎找不到正确的方法来做到这一点,或者即使我做得正确。

客户端

        int i = 0;
while(i < 1000){
String modifiedSentence = inFromServer.readLine();
System.out.println("From Server: " + modifiedSentence);
i++;
}

while(j < 1000) {
int byteString = inFromServer.read();
ArrayList<byte[]> bytes = new ArrayList<byte[]>();
bytes.add(byteString);
}
Integer byteInt = new Integer(byteString);
FileOutputStream fo = new FileOutputStream(System.getProperty("user.home")+ "/client/text.txt");
fo.write(byteInt.byteValue());

}
}

服务器

            byte[] bytes = new byte[1024];
FileInputStream fi = new FileInputStream(file.toString() + fileArray[userChoiceInt]);
fi.read(bytes, 0, 1024);
outToClient.write(bytes, 0, 1024);

}
}
}

如果有人可以提供任何建议或正确的类或使用方法,我将不胜感激。

提前谢谢您。

最佳答案

在不破坏整个事情的情况下,这里有一些提示。

这可以通过使用 Socket(服务器和客户端)轻松完成。使用 byte[] 传输文件将确保您的程序可以处理 ascii 和二进制文件。

另一种方法是使用远程方法调用 (RMI) 中的构建。我还没有使用这种方法传输文件,但我确信它是可行的。

如果您不知道,可以通过以下调用来获取用户主目录:System.getProperty( "user.home");

关于java - 如何在客户端/服务器 Java 应用程序中传输文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3794593/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com