2015-12-22 1 views
-3

Можно ли найти экземпляры // в строке, считанной из файла в массив байтов, а затем «отрезать» от // до конца строки? Я пытаюсьНайти отдельные строки в байтовом массиве

FileInputStream fis = new FileInputStream(file); 
byte[] buffer = new byte[8 * 1024]; 
int read; 

while ((read = fis.read(buffer)) != -1) 
{ 
    for (int i = 0; i < read; i++) 
    { 
     if (buffer[i] == '//') 
     { 
      buffer = buffer[0:i]; 
     } 
    } 
} 

, но я получаю Invalid character constant в if (buffer[i] == '//') на '//' части. Я что-то делаю неправильно, или это просто невозможно?

+0

Есть ли причина, по которой вы не используете BufferedReader? – VGR

+4

Потому что '//' не является символом, это символ '/'. –

+0

Есть ли способ проверить '//'? – mjswartz

ответ

1

Старая школа решение

for (int i = 0; i < read-1; i++) 
    { 
     (if (buffer[i] == '/') && (buffer[i+1]== '/')) 
     { 
      buffer = buffer[0:i]; 
     } 
    } 
0

'' и обозначают один характер. Поскольку // - два символа, это не сработает. Нужно различать символ и строку. Таким образом, вы должны индивидуально проверить обе позиции в массиве байтов, чтобы подтвердить, что есть два последовательных / s.

+0

Черт, есть несколько смешных downvoters. Не могли бы вы объяснить, так что я могу улучшить ответ? – qwertz