2013-04-17 3 views
-2

Я пишу программу для кодирования Хаффмана. Мне нужно подавать в 10 файлов, каждый из которых содержит 500-1000 символов, содержащих все 256 символов ASCII, по крайней мере один раз. Как я это сделаю? Есть ли файлы с образцами в Интернете, которые содержат все 256 символов ASCII? Пожалуйста помоги!Как создать образец текстового файла со всеми 256 символами ASCII

Обновление: Я могу ввести 255 символов ascii. Но по какой-то причине я не могу набрать NULL. Он просто не отображается в файле. Все остальные символы показывают, например, delete представляет собой пятиугольник. Я попробовал Alt + 0.

+3

вы должны быть в состоянии сделать это в простой петле, вам не нужен файл из Интернета. – tay10r

+0

@TaylorFlores: Я не могу напечатать некоторые символы, такие как NULL и удалить. Как я это делаю –

+0

вам нужно будет открыть и записать файл в двоичном режиме. вы можете написать null и удалить. дайте мне момент, чтобы найти ссылку для отправки вам – tay10r

ответ

1

Вы можете создать эти файлы самостоятельно - относительно простой алгоритм должен быть достаточно:

  • Пройтись чисел c от 0 до 255 последовательно
  • Для каждого номера c, сгенерировать случайное число n в диапазоне от 1 до 4 включительно
  • Добавить n значения c к списку
  • Если количество элементов в списке меньше, чем 500 (это очень маловероятно) вы можете установить c обратно на 0 и продолжить с тем же алгоритмом, пока не перейдете 500 счет.
  • Применить алгоритм random shuffle к списку
  • Запишите результаты в файл.
+0

Спасибо! Я это попробую. –

1

Я не программист на Java (я не знаю немного Java), я программист. Но то, что вы хотите сделать, довольно просто. Я нашел пример, который вы должны проверить.

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. Он просто не отображается в файле. Все остальные символы показывают, например, delete представляет собой пятиугольник. –

+0

, вероятно, для NULL не печатается символ. проверьте размер вашего файла, если он равен 256, тогда NULL определенно находится там. – tay10r

Смежные вопросы