C'è un modo per posizionare un BufferedReader in una stringa in un colpo, piuttosto che riga per riga? Ecco quello che ho finora:Come si inserisce il contenuto di un BufferedReader in una stringa?
BufferedReader reader = null;
try
{
reader = read(filepath);
}
catch (Exception e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
String line = null;
String feed = null;
try
{
line = reader.readLine();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
while (line != null)
{
//System.out.println(line);
try
{
line = reader.readLine();
feed += line;
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println(feed);
Non ho idea di quale sia la dimensione, potrebbe essere qualsiasi dimensione davvero .. grazie per la risposta comunque .. – BigBug
Questa è in realtà la soluzione migliore senza utilizzare altre librerie. Dall'API: "Se il' first read' sul flusso sottostante restituisce -1 per indicare la fine del file, questo metodo 'restituisce -1', altrimenti questo metodo restituisce il numero di caratteri effettivamente letti." Ecco come lo usi: http://pastebin.com/RvGwKLuC – bezmax
Per spiegarti meglio: BufferedReader si avvolge attorno ad altri lettori. Quando chiamate 'read (char [], int, int)' riempie il suo buffer con chiamate sequenziali a 'read(): int' del lettore sottostante. Quando il buffer interno viene riempito, ne ottiene una parte e si inserisce nell'array specificato. Quindi, l'API dice che se PRIMA di quelle sottostanti chiamate di lettura restituite '-1' - allora questo metodo restituisce anche' -1', poiché è la fine dello stream. Altrimenti (per esempio, se 1 ha letto la chiamata ha avuto successo e la seconda ha restituito '-1') - restituirà comunque il numero di caratteri letti. – bezmax