由于计算机中的数据都是二进制的,通常来说字节流比字符流功能更加强大,但对于文本文件使用字节流还需考虑怎么用合适的方式把字节转换为字符。因此对于文本文件一般采用字符流,对于二进制内容输入输出通常采用字节流。Java中有各种输入/输出流,下面程序演示了一种把字符串作为物理节点的输入/输出流的用法。

public class StringNodeTest {
    public static void main(String[] args) {
        String src = "从明天起,做一个幸福的人\n" + "喂马、劈柴、周游世界\n" + "我有一所房子,面朝大海,春暖花开\n"
                + "告诉它们我的幸福";
        char[] buffer = new char[32];
        int hasRead = 0;
        try (StringReader sr = new StringReader(src)) {
            while ((hasRead = sr.read(buffer)) > 0) {
                System.out.println(new String(buffer, 0, hasRead));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        try (StringWriter sw = new StringWriter()) {
            sw.write("有一个姑娘");
            sw.write("它有一些任性");
            System.out.println(sw.toString());
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}