J'ai un problème avec le tuto de java et les entrées/sorties.
J'ai ce code pour copier/coller un fichier :
public static void main(String[] args) {
File f = new File("test.txt");
System.out.println("Chemin absolu du fichier : " + f.getAbsolutePath());
System.out.println("Nom du fichier : " + f.getName());
System.out.println("Est-ce qu'il existe ? " + f.exists());
System.out.println("Est-ce un répertoire ? " + f.isDirectory());
System.out.println("Est-ce un fichier ? " + f.isFile());
FileInputStream fis = null;
FileOutputStream fos = null;
byte[] b;
int n = 0;
try {
fis = new FileInputStream(new File("flux.txt"));
fos = new FileOutputStream(new File("flux2.txt"));
b = new byte[8];
while ((n = fis.read(b)) >= 0) {
fos.write(b);
}
for (byte bit : b) {
System.out.print("\t" + bit + "(" + (char) bit + ")");
}
System.out.println("");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
// On ferme nos flux de données dans un bloc finally pour s'assurer
// que ces instructions seront exécutées dans tous les cas même si
// une exception est levée !
try {
if (fis != null)
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if (fos != null)
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
Le fichier "flux.txt" a :
1 ligne de test.
2 lignes !
Fin du test.
Le fichier créé, "flux2.txt" a :
1 ligne de test.
2 lignes !
Fin du test.est
... du coup il doit y avoir un problème, mais je ne le trouve pas...
Il est où l'problème ?
Merci d'avance
[edit :
Comme on dit la nuit porte conseil...
J'ai résolu le problème en créant une new byte[] à chaque tour de boucle...
while ((n = fis.read(b)) >= 0) {
fos.write(b);
b = new byte[8];
}
Problème résolu !
]
- Edité par WaitWaitW 7 août 2018 à 8:42:21
flux d'entrée / sortie
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.