当前位置: 首页 > 面试题库 >

如何在Java中将数组写入OutputStream?

鄢松
2023-03-14
问题内容

我想发送多个随机值Socket。我认为数组是发送它们的最佳方法。但是我不知道如何向Socket写一个数组OutputStream

我的Java课:

导入java.io.ByteArrayOutputStream; 导入java.io.IOException; 导入java.io.InputStream;
导入java.net.Socket; 导入java.io. *; 导入java.util.Random;

public class NodeCommunicator {

    public static void main(String[] args) {
        try {
            Socket nodejs = new Socket("localhost", 8181);

            Random randomGenerator = new Random();
            for (int idx = 1; idx <= 1000; ++idx){
                Thread.sleep(500);
                int randomInt = randomGenerator.nextInt(35);
                sendMessage(nodejs, randomInt + " ");
                System.out.println(randomInt);
            }

            while(true){
                Thread.sleep(1000);
            }
        } catch (Exception e) {
            System.out.println("Connection terminated..Closing Java Client");
            System.out.println("Error :- "+e);
        }
    }

    public static void sendMessage(Socket s, String message) throws IOException {
        s.getOutputStream().write(message.getBytes("UTF-8"));
        s.getOutputStream().flush();
    }

}

问题答案:

使用java.io.DataOutputStream / DataInputStream对,他们知道如何读取int。以长度+随机数的数据包形式发送信息。

发件人

Socket sock = new Socket("localhost", 8181);
DataOutputStream out = new DataOutputStream(sock.getOutputStream());
out.writeInt(len);
for(int i = 0; i < len; i++) {
      out.writeInt(randomGenerator.nextInt(35))
...

接收者

 DataInputStream in = new DataInputStream(sock.getInputStream());
 int len = in.readInt();
 for(int i = 0; i < len; i++) {
      int next = in.readInt();
 ...


 类似资料:
  • 问题内容: 我一直在尝试将数组写入文件。我知道如何将整数或字符串写入文件,但是要带一个数组会使我感到困惑。我现在正在使用这个: 问题答案: 就像其他人说的那样,您可以循环遍历数组并逐个打印出元素。为了使输出显示为数字而不是您看到的“字母和符号”,您需要将每个元素转换为字符串。因此,您的代码将如下所示: 如果您只想打印类似的数组,则可以使用此衬纸替换循环:

  • 问题内容: 如何在Java中将字节数组写入文件? 问题答案: 可以使用IOUtils.write(字节[]数据,OutputStream的输出)从Apache的百科全书IO。

  • 我有一个二维数组,想通过java代码写入一个excel文件单元格区域中,并支持导出xlsx文件。 应该如何实现?

  • 我正在做一个井字游戏6x7(6行7列),所以我把它显示给用户 然后我想让用户输入“x”或“o”,但上面的数字是在一个二维整数数组中,而“x”和“o”都是字符,我怎么能把它们插入进去。我知道我可以用“0”和“1”来代替,但我想用“X”和“O”。

  • 问题内容: 我有一个示例数组如下 我想将此数组写入文件,例如我得到的文件如下 问题答案: 如果它是一个巨大的数组,并且在写入之前需要太多内存才能将其序列化为字符串,则可以使用流:

  • 问题内容: 如何将坐标数组作为数据类型写入Cloud Firestore ? 我确实有一个with坐标,我需要将这些坐标写入Firestore: 我试着和都导致错误和。 问题答案: 将FieldValue.arrayUnion作为第二个参数传递给update()方法时,如以下代码行所示: 这意味着,你告诉火力地堡要更新文档是类型中的属性有,这实际上是不可能的,因此这样的错误: 如果您的文档包含嵌套