java - char[] 上的流写入器不起作用

标签 java stream writer

我有以下代码,但是当我检查输出文件时,char[] cc 似乎没有被写入。谁能告诉我出了什么问题吗?

import java.io.*;

class Test {
  public static void main(String[] args) {
    System.out.printf("start of main\n");
    char[] cc = new char[300];
    try {
      String s = "this is a test.";
      System.arraycopy(s.toCharArray(), 0, cc, 0, s.length());
      System.out.printf("cc = %s\n", new String(cc));
      String filename = "tst.data";
      DataOutputStream ostream = new DataOutputStream(new FileOutputStream(filename));
      OutputStreamWriter writer = new OutputStreamWriter(ostream);
      writer.write(cc, 0, 300);
      ostream.close();

      DataInputStream istream = new DataInputStream(new FileInputStream(filename));
      InputStreamReader reader = new InputStreamReader(istream);
      char[] newcc = new char[300];
      reader.read(newcc, 0, 300);
      istream.close();

      System.out.printf("newcc = %s\n", new String(newcc));
    } catch (Exception e) {
      System.out.printf("Exception - %s\n", e);
    }
  }
}

最佳答案

您需要关闭最外面的 I/O 包装器。

替换

ostream.close();

writer.close();
<小时/>

与具体问题无关,这些 DataOutputStreamDataInputStream 包装器在此上下文中是不必要的。删除它们。最后,您应该在finally block 中关闭流。另请参阅此相关问题:Do I have to close FileOutputStream which is wrapped by PrintStream?

关于java - char[] 上的流写入器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8088578/

相关文章:

Java Android - 动态加载 fragment (ViewPager)

java - 颜色代码枚举

java - 我可以在不更改系统 DPI 设置的情况下设置 Java Swing 应用程序的 DPI 分辨率吗?

crash - JpCapWriter使JVM崩溃

python - python写csv文件(运行结束文件留空)

java - 如何从我的项目覆盖 jar 内的 Flyway .sql 迁移文件?

video - 使用 ffmpeg 进行实时视频流的输入命令

java - 功能代码上的调试流跟踪抛出 IncompatibleClassChangeError

node.js - JSON 中位置 0 处出现意外标记 u - 将文件中的 JSON 字符串数据解析到 Web 服务器时

java - 无法向 Bukkit 服务器发送命令