web-dev-qa-db-fra.com

Fichier I/O: lecture d'un fichier et écriture dans un autre (Java)

Je travaille actuellement sur un laboratoire de mon cours de cpe et nous devons créer un programme simple qui analyse les chaînes d'un fichier .txt et les imprime dans un fichier .txt différent. Jusqu'ici, j'ai le programme de base dessiné, mais mon exception continue à être lancée bien que j'ai tous les fichiers nécessaires. Quelqu'un peut-il m'aider à déboguer?

import Java.io.*;
import Java.util.*;

public class FileIO {

public static void main(String args[]) {        
    try {
        File input = new File("input");
        File output = new File("output");
        Scanner sc = new Scanner(input);
        PrintWriter printer = new PrintWriter(output);
        while(sc.hasNextLine()) {
            String s = sc.nextLine();
            printer.write(s);
        }
    }
    catch(FileNotFoundException e) {
        System.err.println("File not found. Please scan in new file.");
    }
}
}
7
Mike

Vous devez savoir où se trouve le fichier "input". Lorsque vous spécifiez simplement "input", le fichier se trouve dans le répertoire de travail current . Lorsque vous travaillez avec un IDE, ce répertoire peut ne pas être ce que vous pensez.

Essayez ce qui suit:

System.out.println(new File("input").getAbsolutePath());

pour voir où il cherche le fichier.

5
aioobe

Peut-être que vous êtes juste oublier la flush()

       try {
            File input = new File("input");
            File output = new File("output");
            Scanner sc = new Scanner(input);
            PrintWriter printer = new PrintWriter(output);
            while (sc.hasNextLine()) {
                String s = sc.nextLine();
                printer.write(s);
            }
            **printer.flush();**
        }
        catch (FileNotFoundException e) {
            System.err.println("File not found. Please scan in new file.");
        }
4
isvforall

Lors de l'accès à des fichiers avec Java I/O, vous devez inclure l'extension de type de fichier du fichier (le cas échéant).

    File input = new File("input.txt");
    File output = new File("output.txt");
3
Vulcan
public void readwrite() throws IOException 
{
    // Reading data from file
    File f1=new File("D:/read.txt");
    FileReader fr=new FileReader(f1);
    BufferedReader br=new BufferedReader(fr);

    String s = br.readLine();

    // Writing data
    File f2=new File("D:/write.txt");
    FileWriter fw=new FileWriter(f2);
    BufferedWriter bw=new BufferedWriter(fw);
    while(s!=null)
    {
        bw.write(s);
        bw.newLine();
        System.out.println(s);
        s=br.readLine();

    }
    bw.flush();
    bw.close();

}
0
Anshul Katara

Nous pouvons le faire en lisant le fichier en utilisant FileInputStream object et en écrivant dans un autre fichier en utilisant FileOutputStream object.

Voici l exemple de code

package Java_io_examples;
import Java.io.FileInputStream;
import Java.io.FileOutputStream;
import Java.util.Vector;

public class Filetest {

   public static void main(String[] args) {

     try {

           FileInputStream fin = new FileInputStream("D:\\testout.txt");

           int i = 0;
           String s = "";

           while((i=fin.read())!=-1) {

               s = s + String.valueOf((char)i);

           }

           FileOutputStream fout = new 
           FileOutputStream("D:\\newtestout1.txt");
           byte[] b = s.getBytes();

           fout.write(b);
           fout.close();

           System.out.println("Done reading and writing!!");

      } catch(Exception e){
         System.out.println(e);
      }

    }

 }
0
shivam gupta