2012-05-16 4 views
-2

Изменение файла MP3, как показано ниже, вызывает ошибку «Ошибка в памяти». есть в любом случае я могу сделать ниже операции более эффективно (то есть, используя меньшую память)Как обрабатывать кучу Пространство без увеличения JVM?

public void BacaMP3(){ 
    String a = System.getProperty("user.dir") + "/src/MP3/21.waltz-cut.mp3"; 
String bitMP3=""; 
    try { 
     File song = new File(a); 
     FileInputStream file = new FileInputStream(song); 

     int input = 0; 
     System.out.println("Creating file ..."); 
     while (input != -1) { 
      input = file.read(); 
      count++; 
      if (input==-1)bitMP3="#"; 
      else{ 
       bitMP3 = Integer.toBinaryString(input); 
       while(bitMP3.length()<8){ 
        bitMP3="0"+bitMP3; 
       } 
      } 

      area1.append(bitMP3+"\n"); 

     } 
     System.out.println(count); 
     file.close(); 

     System.out.println("Done"); 
    } catch (Exception e) { 
     System.out.println("Error  " + e.toString()); 
    } 
} 
+4

Что вы на самом деле пытается сделать? Зачем вам это делать? –

+0

Ваш вопрос должен быть переформулирован для нас, чтобы понять проблему. Вы имеете в виду, что у вас заканчивается память при выполнении вышеуказанной программы? Если да, то какая минимальная куча, которую вы используете, и насколько велика mps-файл. В sidenode вы используете String в своей программе для bitMP3, вместо этого используйте StringBuffer – Chandra

+0

Я хочу сделать обработку MP3, я хочу изменить какой-то бит в MP3 ... но когда я это сделаю ... моя память работает out..i пытаюсь увеличить JVM, но его все еще недостаточно. – haidey

ответ

0

В качестве стартера

while(bitMP3.length()<8){ 
    bitMP3="0"+bitMP3; // Here you are creating two string till count is less than 8 move it to string buffer 
} 

area1.append(bitMP3+"\n"); // Here you are already using string buffer why doing string concatenation then change to area1.append(bitMP3).append("\n"); 
+0

спасибо ... я попробую его со строковым буфером – haidey

+0

ok опубликуйте свои выводы – mprabhat

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