Chers tous, Je crée un simple décodeur de fichiers pour Android 2.2 qui doit trouver le nom de fichier du fichier encodé à partir d'un en-tête. Ce nom de fichier devrait ensuite être utilisé comme nom de fichier pour le fichier décodé (comme vous pouvez vous y attendre).Java: Les chaînes générées par la sous-chaîne ne sont pas traitées comme des chaînes codées en dur
Le nom de fichier est identifié par la sous-chaîne name=
, de sorte que le nom réel commence 5 endroits après cela. La ligne est lue par BufferedReader et temporairement stockée dans currLine
.
Pour une raison quelconque, je ne peux pas comprendre, ni trouver sur le web, des chaînes ne semblent pas toujours cordes ...
Quand je donne le nom de fichier comme
String fileOutName = "testfile.txt";
System.out.println("fileOutName contains: "+ fileOutName);
System.out.println("fileOutName type: "+ fileOutName.getClass());
Il fonctionne comme il se doit. Cependant la lecture à partir du fichier ne fonctionne pas:
String fileOutName = currLine.substring((currLine.indexOf("name=")+5));
donne pas de fichier de sortie, ni une exception IO. La chaîne est analysée correctement si: des lignes de débogage System.out je trouve dans les deux cas:
fileOutName contains: testfile.txt
fileOutName type: class java.lang.String
Quelqu'un a une idée de pourquoi cela ne fonctionnerait pas? : S
Merci
Spécifiez-vous le bon chemin? – st0le
pouvez-vous s'il vous plaît poster un extrait de code lorsque vous lisez l'en-tête du fichier? –