J'ai une méthode qui lit un fichier et renvoie une chaîne, mais je voulais renvoyer un lecteur. Je veux convertir la chaîne en lecteur, ou je veux lire le fichier et le renvoyer. Comment puis-je faire ceci?
Utilisez Java.io.StringReader
: return new StringReader(string);
.
La prochaine fois que vous aurez besoin d’un lecteur, vous pourrez vérifier les "Sous-classes directes connues" de la classe Reader
. Il en va de même pour InputStream
, etc. Le point de départ est le javadoc - il contient de nombreuses informations utiles.
Mais pour votre tâche actuelle, vous feriez bien de suivre le conseil de Jon Lin d’utiliser simplement une variable FileReader
. Il n'est pas nécessaire de passer par String
. (Pour cela, mon conseil du paragraphe précédent s'applique également)
Ou vous pouvez simplement créer un FileReader et le retourner.
Vous pouvez utiliser StringReader class à partir du package Java.io
.
String stringToBeParsed = "The quick brown fox jumped over the lazy dog";
StringReader reader = new StringReader(stringToBeParsed);
Essayez cet exemple de code,
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();
}