wake-up-neo.net

Wie konvertiert man String in Java in Reader?

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?

45
Arasu

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)

94
Bozho

Oder Sie erstellen einfach einen FileReader und geben diesen zurück.

10
Jon Lin

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);
8

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();
    }
0
ozanurkan