[java]creation de fichier ...

Fermé
suber600 - 30 sept. 2002 à 14:38
choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 - 30 sept. 2002 à 15:45
voila je dois creer un fichier composé d entier et de double. le fichier ne doit pas etre lisible par un editeur de texte comment dois je faire ?

je vous met out ce que j ai essayé ...si qq1 pouvais m aider

import java.util.*;
import java.io.*;
import java.lang.String;



public class fichier
{


public static void main(String args[])
{
try
{
byte[] buffer=new byte[256];
int nbBytes;

FileOutputStream fos =new FileOutputStream("cfichier.txt");
FileInputStream fis =new FileInputStream("cfichier.txt");
DataOutputStream dos= new DataOutputStream(fos);


DataInputStream dis= new DataInputStream(new FileInputStream("cfichier.txt"));

/* System.out.println("***Labo1 Ex2***\n");
System.out.println("Entrez des valeurs comprise entre 5 et 9 ( par pas de 0,5)");


nbBytes=System.in.read(buffer);
while(nbBytes!=-1)
{
fos.write(buffer,0,nbBytes);

}


*/

/* marche mais ecrit le code ascii
int c;
while((c=System.in.read())!='\n') // on lit byte par byte
{
System.out.println("on a entré: "+c);
dos.write(c);
}
*/
/*
// arrêt informatique : somme d'entiers positifs lus au
// clavier, la dernière valeur est suivie de -1
int valeur, Somme=0 ;
valeur = System.in.readInt() ; // lecture donnée courante
while (valeur != -1) {
Somme += valeur ; // utilisation de la donnée courante
valeur = System.in.readInt() ; //lecture prochaine donnée
}
System.out.println("somme = "+Somme) ;

*/


/*
char tmp;
int entier;
double dou;
for(int i=0;i<10;i++)
{
tmp=System.in.read();
entier=(Ineger.valueOf(tmp).intValue();
dos.writeInt(entier);



}

*/
/*

int c;
try {
System.out.print("Saisie :");
c=System.in.read();
System.out.println(" c= "+c);
}
catch (IOException e) {
System.out.println("ERREUR:"+e.toString());
}

*/

/* nbBytes=System.in.read(buffer);


while (nbBytes!=-1)
{
fos.write(buffer,0,nbBytes);
}

System.out.println("ICI");
String valeur;
while((valeur=dis.readLine())!=null)
System.out.println(valeur);


//avec dos chaines de caracteres dans le fichier
while (nbBytes!=-1)
{
dos.write(buffer,0,nbBytes);
}

*/

/*
int cp=0;


while(System.in.read(buffer)!='\n') cp++;


System.out.println(cp);
//System.out.println(nbBytes);
// System.out.println(buffer);
// dos.writeByte(buffer);


for(int i=0;i<5;i++)
{
while(System.in.read()!='\n')
{
nbBytes=System.in.read(buffer);
fos.write(buffer);
}
}

int val=5;
if(val <5 || val>9) throw new ErreurNum(val);
//dos.writeBytes(buffer);

//------------------------------------------------------------
// byte buffer[] = new byte[80];


*/
try
{
System.out.println ("\nEntrez une ligne de caractères à sauver sur disque");
int bytes = System.in.read(buffer);
FileOutputStream fileOut = new FileOutputStream("cfichier.txt");
fileOut.write(buffer, 0, bytes);
}
catch (Exception e)
{
String err = e.toString();
System.out.println(err);
}
//----------------------------------------




//Entrer les valeurs verifié si plus petit , faire stop pour finir

}
catch(FileNotFoundException e)
{
System.out.println("Erreur ! fichier non trouvé ["+e+"]");
}
catch (IOException e)
{
System.out.println("Erreur !["+e+"]");
}
}
}



attention c est tjs pour faire la meme chose ....


voila mon mail et mon msn : suber600@hotmail.com
A voir également:

1 réponse

choubaka Messages postés 39407 Date d'inscription jeudi 4 avril 2002 Statut Modérateur Dernière intervention 9 décembre 2024 2 104
30 sept. 2002 à 15:45
salut, je n'ai pas vu tout ton code, donc voici un élément de réponse concernant la structure de la classe, essaye de créer plus de petite méthode spécialisée, ce qui permet de mieux cerner le problème et celà permet de rendre le tout plus compréhensible pour quelqu'un d'autre ( et pis c'est plus POO). Dans ce cas, ci j'ai crée une méthode d'initiatialisation de ton fichier (il est peut être utilse de rajouter dans cette méthode un test pour voir si le fichier n'existe pas déjà). La deuxième méthode crée tes différent IOStreams. vu que tu utilise une méthode main, je te propose de faire appel à toutes les méthode dans le constructeur de la Classe.

import java.util.*;
import java.io.*;
import java.lang.String;



public class Fichier {

private File file;
private FileOutputStream fos;
private FileInputStream fis;
private DataOutputStream dos;
private DataInputStream dis;
private byte[] buffer = new byte[256];
private int nbBytes;
public static void main(String args[]) {
Fichier f = new Fichier();
}

public Fichier(){
initFile();
initStreams();

System.out.println("***Labo1 Ex2***\n");
System.out.println("Entrez des valeurs comprise entre 5 et 9 ( par pas de 0,5)");

try{
nbBytes=System.in.read(buffer);
while(nbBytes!=-1) {
fos.write(buffer,0,nbBytes);

}
}
catch (Exception e){}




/* marche mais ecrit le code ascii*/
/*int c;
while((c=System.in.read())!='\n') // on lit byte par byte
{
System.out.println("on a entré: "+c);
dos.write(c);
}
*/
/*
// arrêt informatique : somme d'entiers positifs lus au
// clavier, la dernière valeur est suivie de -1
int valeur, Somme=0 ;
valeur = System.in.readInt() ; // lecture donnée courante
while (valeur != -1) {
Somme += valeur ; // utilisation de la donnée courante
valeur = System.in.readInt() ; //lecture prochaine donnée
}
System.out.println("somme = "+Somme) ;

*/


/*
char tmp;
int entier;
double dou;
for(int i=0;i<10;i++)
{
tmp=System.in.read();
entier=(Ineger.valueOf(tmp).intValue();
dos.writeInt(entier);



}

*/
/*

int c;
try {
System.out.print("Saisie :");
c=System.in.read();
System.out.println(" c= "+c);
}
catch (IOException e) {
System.out.println("ERREUR:"+e.toString());
}

*/

/* nbBytes=System.in.read(buffer);


while (nbBytes!=-1)
{
fos.write(buffer,0,nbBytes);
}

System.out.println("ICI");
String valeur;
while((valeur=dis.readLine())!=null)
System.out.println(valeur);


//avec dos chaines de caracteres dans le fichier
while (nbBytes!=-1)
{
dos.write(buffer,0,nbBytes);
}

*/

/*
int cp=0;


while(System.in.read(buffer)!='\n') cp++;


System.out.println(cp);
//System.out.println(nbBytes);
// System.out.println(buffer);
// dos.writeByte(buffer);


for(int i=0;i<5;i++)
{
while(System.in.read()!='\n')
{
nbBytes=System.in.read(buffer);
fos.write(buffer);
}
}

int val=5;
if(val <5 || val>9) throw new ErreurNum(val);
//dos.writeBytes(buffer);

//------------------------------------------------------------
// byte buffer[] = new byte[80];


*/
try {
System.out.println("\nEntrez une ligne de caractères à sauver sur disque");
int bytes = System.in.read(buffer);
fos.write(buffer, 0, bytes);
}
catch (Exception e) {
String err = e.toString();
System.out.println(err);
}
//----------------------------------------




//Entrer les valeurs verifié si plus petit , faire stop pour finir

}



private void initFile(){

file = new File("cfichier.txt");
}

private void initStreams(){

try{
fos =new FileOutputStream(file);
fis =new FileInputStream(file);
dos= new DataOutputStream(fos);
dis= new DataInputStream(fis);
}
catch(FileNotFoundException e) {
System.out.println("Erreur ! fichier non trouvé ["+e+"]");
}
catch (IOException e) {
System.out.println("Erreur !["+e+"]");
}
}
}
Chouba : 
"les Schtroumpfs sont mes amis parce qu'ils sont petits"
1