使用流在Java中传输数据



我一直在阅读关于I/O的Java教程,试图了解流及其正确用法。假设我有两个连接的设备,并且两个设备上都有一个InputStreamOutputStream。如何在两者之间传输数据?

例如,如果我想让一台设备向另一台设备发送一堆单词,然后另一台将它们打印到屏幕上。这是怎么回事?

public class Device1 {
    // assuming connectedDevice is something
    String[] words = new String()[]{"foo", "bar", "baz"};
    OutputStream os = connectedDevice.getOutputStream();
    InputStream is = connectedDevice.getInputStream();
    /*
        How to write to output stream?
    */
}
public class Device2 {
    // assuming connectedDevice is something
    ArrayList<String> words = new ArrayList<String>();
    OutputStream os = connectedDevice.getOutputStream();
    InputStream is = connectedDevice.getInputStream();
    /*
        How can I somehow get the words using `read()` and `put()`
        them into the ArrayList for use?
    */
}

也许我做错了。提前感谢您对理解的帮助。

这取决于设备的连接方式。例如,它们可能通过TCP或共享文件系统进行连接。

如果您想专注于流,请创建一个使用文件系统的应用程序。然后,使用FileOutputStreamFileInputStream来理解流API。

如果你的重点是网络,你也会想学习网络教程。

如果您只想发送字符,请在写入端使用OutputStreamWriter,在读取端使用InputStreamReader包装流。你可以写整个字符串,然后一次读取一个字符并打印出来。如果你需要非常小心,你应该为两者选择一个固定的字符编码。

如果您想发送像Strings这样的整个简单对象,可以使用DataOutputStream/DataInputStream。(对于字符串,请使用UTF方法。)

如果您想变得更复杂,您需要使用ObjectOutputStreamObjectInputStream对对象进行序列化/反序列化。

相关内容

  • 没有找到相关文章

最新更新