-2

我正在为 Huffman Coding 编写程序。我需要输入 10 个文件,每个文件包含 500-1000 个字符,至少 1 次包含所有 256 个 ASCII 字符。我要怎么做?互联网上是否有包含所有 256 个 ASCII 字符的示例文件?请帮忙!

更新:我可以输入 255 个 ascii 字符。但由于某种原因,我似乎无法输入 NULL。它只是没有显示在文件中。所有其他字符显示,例如删除由五边形表示。我试过 Alt+0。

4

2 回答 2

1

我不是java程序员(我一点java都不懂),我是ac程序员。但是,你想要做的很简单。我找到了一个你应该检查的例子。

http://www.java2s.com/Code/Java/File-Input-Output/Writesomedatainbinary.htm

您需要修改代码以便写入字节而不是整数。你应该循环执行。如果需要随机,请按照 dasblinkenlight 的建议进行操作。我写的以下片段替换了我给你的链接中的片段。

import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class WriteBinary {
  public static void main(String[] argv) throws IOException {

    String FILENAME = "binary.dat";
    DataOutputStream os = new DataOutputStream(new FileOutputStream(
        FILENAME));

    for( int i = 0; i < 256; i++ ) os.writeByte( (byte) i );

    os.close();
  }
}

您还应该注意,并非所有 ascii 值都是可打印字符。因此,当您查看文件时,您将无法计算 256 个字符。但是,您应该能够看到整个字母表和 0 - 9。

于 2013-04-17T02:10:25.580 回答
1

您可以自己生成这些文件——一个相对简单的算法就足够了:

  • 依次遍历c从 0 到 255 的数字
  • 对于每个数字c,生成一个n1 到 4 范围内的随机数,包括 1 到 4
  • n将的值添加c到列表中
  • 如果列表中的项目数少于 500(这不太可能),您可以设置c0,并继续使用相同的算法,直到超过 500 个计数。
  • 随机洗牌算法应用于列表
  • 将结果写入文件。
于 2013-04-17T02:01:43.140 回答