2016-04-01 25 views
0

Bu yüzden Java için yeni bir soru,Java'da bir InputStream okuma

Dizede bir dosyayı okumak için aşağıdaki sınıfı kullanıyorum.

public class Reader { 

    public static String readFile(String fileName) throws IOException { 
     BufferedReader br = new BufferedReader(new FileReader(fileName)); 
     try { 
      StringBuilder sb = new StringBuilder(); 
      String line = br.readLine(); 

      while (line != null) { 
       sb.append(line); 
       sb.append("\n"); 
       line = br.readLine(); 
      } 
      return sb.toString(); 
     } finally { 
      br.close(); 
     } 
    } 

} 

Bir dizgenin karşıtı olarak bir InputStream değerini okumak için okunan yöntem imzasını nasıl değiştirebilirim.

+0

Java'ya yeniyim, seçmeniniz reddedildi mi? – Zeus

+0

YOu sadece bir "InputStream" gönder ve sonra sadece yap ... 'BufferedInputStream st = new BufferedInputStream (* PARAMETER *);' ?? – 3kings

+0

Genel statik String readInputStream (InputStream akışı) 'veya' public statik InputStream readFile (String dosyaadı) 'mı arıyorsunuz? – Shark

cevap

1

String bağımsız değişkenini kaldırın ve InputStream türünde bir bağımsız değişken oluşturun. Bu argümanı bir InputStreamReader yapıcısına iletin ve bu InputStreamReader, BufferedReader'unuzun yapıcısına iletilebilir. ( ). Sonra son bloğu kaldırabilirsiniz. Buna benziyor.

public static String readFile(InputStream is) throws IOException 
{ 
    try (BufferedReader br = new BufferedReader(new InputStreamReader(is))) 
    { 
     StringBuilder sb = new StringBuilder(); 
     String line = br.readLine(); 

     while (line != null) 
     { 
      sb.append(line); 
      sb.append("\n"); 
      line = br.readLine(); 
     } 
     return sb.toString(); 
    } 
} 
+0

Bunun çok kolay olduğunu bilmiyordum . Teşekkürler. – Zeus

0

Eğitim amaçlı değilse, bunu elle yapmayın. Örneğin. Apache Commons'tan IOUtils.toString'u kullanabilirsiniz.

İlgili konular