copier un fichier binaire ? (load/save dans le code)?
Bonjour,
Je progresse doucement mais surement, aussi je suis en train d'écrire une application TEST, pour tester des classes avant de passer sur la grosse version.
La difficulté du jour ets simple à comprendre :
une JFrame (swing) s'ouvre quand l'utilisateur cliques sur un bouton.
Un menu fichier/ouvrir/enregister/retour est alors proposé.
Au final l'utilisateur devra pouvoir prendre un fichier de n'importe (en toute logique une clef/un disque USB), pour le charger sur la machine.
(le programme final sera la seule interface disponnible pour l'utilisateur...donc je ne peut en aucun cas faire appel a une commande systeme !)
J'ai tester ceci :(juste les deux fonctions load/save) (sur un plan de tutorial trouvé sur gougoul juste adapté)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
public boolean openFile () {
JFileChooser fc = new JFileChooser ();
fc.setDialogTitle ("Ouvrir un fichier");
// Choose only files, not directories
fc.setFileSelectionMode ( JFileChooser.FILES_ONLY);
// Start in current directory
fc.setCurrentDirectory (new File ("."));
// Now open chooser
int result = fc.showOpenDialog (this);
if (result == JFileChooser.CANCEL_OPTION) {
return true;
} else if (result == JFileChooser.APPROVE_OPTION) {
fFile = fc.getSelectedFile ();
}
return true;
} // openFile
public boolean saveFile () {
File file = null;
JFileChooser fc = new JFileChooser ();
// Start in current directory
fc.setCurrentDirectory (new File ("."));
// Set to a default name for save.
fc.setSelectedFile (fFile);
// Open chooser dialog
int result = fc.showSaveDialog (this);
if (result == JFileChooser.CANCEL_OPTION) {
return true;
} else if (result == JFileChooser.APPROVE_OPTION) {
fFile = fc.getSelectedFile ();
if (fFile.exists ()) {
int response = JOptionPane.showConfirmDialog (null,
"Ecraser l'ancien fichier du meme nom ?","Confirmez ?",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
if (response == JOptionPane.CANCEL_OPTION) {return false;}
}
return writeFile (fFile, fTextArea.getText ());
} else {
return false;
}
} // saveFile |
ceci permet donc de copier un fichier TEXTE en le chargeant dans un fTextArea.
Je n'ai pas la moindre idée de la manière de faire pour gerer n'importe quel type de fichier ? (binaire/texte)
Merci
PS :
--il doit bien exister une sorte de buffered-input qu'on puisse utiliser pour charger un bloc de mémoire ? ce qui ducoup me sauverai la mise...
-ou mieux encore un copieur de bloc de donnees.... (encore faudrait il m'indiquer comment le lier au dit fichier ;) )
désolé mais je débute...