2013-04-17 31 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

相關問題