Ich habe eine Methode, die eine Datei liest und eine Zeichenfolge zurückgibt, aber ich wollte einen Leser zurückgeben. Ich möchte die Zeichenfolge in einen Reader konvertieren oder die Datei lesen und den Reader zurückgeben. Wie kann ich das machen?
Verwenden Sie Java.io.StringReader
: return new StringReader(string);
.
Wenn Sie das nächste Mal einen Leser benötigen, können Sie die "Direkt bekannten Unterklassen" der Klasse Reader
überprüfen. Gleiches gilt für InputStream
usw. Der Startpunkt ist der Javadoc - er enthält viele nützliche Informationen.
Aber für Ihre Aufgabe sollten Sie Jon Lin 'Rat befolgen, einfach eine FileReader
zu verwenden. Es ist nicht nötig, String
zu durchlaufen. (Dafür gilt auch mein Rat aus dem vorherigen Absatz)
Oder Sie erstellen einfach einen FileReader und geben diesen zurück.
Sie können StringReader class aus Java.io
-Paket verwenden.
String stringToBeParsed = "The quick brown fox jumped over the lazy dog";
StringReader reader = new StringReader(stringToBeParsed);
Probieren Sie diesen Beispielcode aus.
FileInputStream in = null;
StringBuilder sb = new StringBuilder();
String tempString = null;
Reader initialReader;
try {
in = new FileInputStream(filename);
initialReader = new InputStreamReader(in);
char[] arr = new char[8 * 1024];
StringBuilder buffer = new StringBuilder();
int numCharsRead;
while ((numCharsRead = initialReader.read(arr, 0, arr.length)) != -1) {
buffer.append(arr, 0, numCharsRead);
}
String targetString = buffer.toString();
result = IOUtils.toByteArray(targetString);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}