2016-01-19 2 views
1

Я хотел бы знать, как я могу удалить пустую строку при чтении/записи файла?Как удалить пустую строку при чтении файла

for(int i=1;i<=count;i++) { 
    FileInputStream fistream1; 
    try { 
     name1="file1"+Integer.toString(i)+".txt"; 
     fistream1 = new FileInputStream(name1); // first source file 
     fistream2 = new FileInputStream("Result.txt"); //second source file 
     sistream = new SequenceInputStream(fistream2, fistream1); 
     fostream= new PrintWriter(new BufferedWriter(new FileWriter(result+".txt", true))); 

     while((temp = sistream.read()) != -1) { 
      fostream.write(temp); // to write to file 
     } 

     fostream.println(""); 
     fostream.close(); 
     sistream.close(); 
     fistream1.close(); 
     fistream2.close(); 
} 

Я нашел this code, но я не мог реализовать из-за следующей строки:

String line; 
while((line = br.readLine())!= null) { ... } 

Они использовали line как String, но в моем случае я имею temp, как int:

int temp; 
while((temp = sistream.read())!=-1) { ... } 

Есть ли способ решить эту проблему?

Ответ @Abdelhak неприемлем.

+3

«но не мог реализовать его» ... какие проблемы у вас были с кодом в принятом ответе? – ParkerHalo

+0

проблема 'temp', из-за' int' – hub

ответ

1

Вы можете попробовать что-то вроде этого:

while((temp = sistream.read()) != -1) { 
    if (!temp.trim().equals("")) 
    { 
    fostream.write(temp); // to write to file 
    } 
... 
+1

За исключением того, что _temp_ будет int. – Berger

+1

@Abdelhak Я уже пробовал, он не работает. – hub

0

Решение было так просто.

Я должен читать строки вместо чтения байтов, чтобы определить, является ли строка пустой, и использовал BufferedReader в сочетании с SequenceInputStream.

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