2013-04-17 30 views
-2

我正在编写一个用于Huffman编码的程序。我需要提供10个文件,每个文件包含至少1次包含全部256个ASCII字符的500-1000个字符。我该怎么做?互联网上是否有包含全部256个ASCII字符的示例文件?请帮忙!如何创建包含全部256个ASCII字符的示例文本文件

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

+3

你应该能够在一个简单的循环中做到这一点,你不需要从互联网上的文件。 – tay10r

+0

@TaylorFlores:我无法打印一些像NULL和删除的字符..如何操作 –

+0

您需要打开并以二进制模式写入文件。你可以写空和删除。给我一点时间找到写链接发送给你 – tay10r

回答

1

您可以生成这些文件,你自己 - 一个相对简单的算法应该足够了:

  • 通过数字从0到255的顺序
  • c对于每个编号c,在范围内产生一个随机数n从1到4,包含
  • n的值加到c的列表中
  • 如果列表中的项目数小于500(这是非常不可能),您可以将c设置回0,并继续使用相同的算法,直到您超过500个计数。
  • random shuffle算法应用于列表
  • 将结果写入文件。
+0

谢谢!我会试试看。 –

1

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

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(byte i = 0; i < 256; i++) os.writeByte(i); 

    os.close(); 
    } 
} 

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

+0

谢谢!我会试试看。 –

+0

由于某种原因,我似乎无法输入NULL。它只是不显示在文件中。所有其他字符都显示为例如删除由五角形表示。 –

+0

那里可能没有null的可打印字符。检查你的文件大小,如果它是256那么NULL肯定在那里。 – tay10r

相关问题