2012-04-18 2 views
2

Я должен написать код в JAVA, как следующую структуру:Строка Java I/O

Read String From File 
// Perform some string processing 
Write output string in file 

Теперь, для чтения/записи строки в/из файла, я использую,

BufferedReader br = new BufferedReader(new FileReader("Text.txt"), 32768); 
BufferedWriter out = new BufferedWriter(new FileWriter("AnotherText.txt"), 32768); 

    while((line = br.readLine()) != null) { 
      //perform some string processing 
      out.write(output string) ; 
      out.newLine(); 
    } 

Однако, кажется, чтение и письмо происходят довольно медленно. Есть ли другой самый быстрый способ чтения/записи строк в/из файла в JAVA?

Дополнительная информация:

1) Read File is 144 MB. 
2) I can allocate large memory (50 MB) for reading or writing. 
3)I have to write it as a string, not as Byte. 
+0

Как медленно «довольно медленно»? –

+0

Это домашнее задание? Вы должны пометить его как таковой. – twain249

+1

Что еще вы делаете, помимо чтения и письма? У вас есть некоторые преобразования? Может ли это превращение стать дорогостоящей? Если вы не преобразуете данные, почему бы просто не скопировать файл? –

ответ

1

Это звучит медленнее, чем это должно быть.

Вы можете попробовать увеличить размер буфера.

Возможно, также попробуйте FileOutputStream вместо FileWriter.

Вы упомянули 50 МБ. Вы вообще изменяете параметры памяти программы при ее запуске с помощью переключателя -X?

+0

Спасибо. Я пробую за 32 КБ, 64 КБ. Однако в то же время.В одном обсуждении, в SO, мне говорят, что 32 КБ более или менее оптимальный. Однако, НИО может быть лучше? – Arpssss

0

Игнорируя тот факт, что вы не отвечал, что ваши требования к производительности являются:

чтение Try/записи файла в качестве байтов и внутренне преобразовать байт в символы/строки.

Этот вопрос может быть полезным: Number of lines in a file in Java