0
votes

Comment lire le fichier texte d'entrée en Java sans avoir à changer le nom de fichier à chaque fois

J'ai environ 10 fichiers texte d'entrée avec chaque fichier texte comportant des paramètres vidéo. Je dois exécuter tous les 10 fichiers d'entrée et comparer les résultats. Existe-t-il un moyen d'exécuter le programme sans avoir à modifier le nom de fichier d'entrée dans le chemin à chaque fois?

public static void main(String[] args) throws IOException {

    File config = new File("C:\\Users\\Dell\\Documents\\DataProcessing\\src\\config6.txt");

    try {
        BufferedReader br = new BufferedReader(new FileReader(config));
        String st;
        while ((st = br.readLine()) != null) {
            String s[] = st.split("\\r?\\n");
            for (int i = 0; i < s.length; i++) {
                arrList.add(s[i]);
            }
        }
        br.close();
    }
    catch (Exception e) {
    }
}


0 commentaires

4 Réponses :


0
votes

Pour résoudre ce problème, lisez d'abord dans un fichier à partir de l'entrée de l'utilisateur et validez s'il s'agit d'un fichier valide, si oui, puis continuez dans votre programme. J'espère que cela vous aidera!


0 commentaires

0
votes
List<Integer> replaceNumbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
String filePath = "C:\\Users\\Dell\\Documents\\DataProcessing\\src\\config0.txt";

for (int f = 0; f < replaceNumbers.size(); f++) {
    File config = new File(filePath.replace("0", replaceNumbers.get(f).toString()));

    try {
        BufferedReader br = new BufferedReader(new FileReader(config));
        String st;
        while ((st = br.readLine()) != null) {
            String s[] = st.split("\\r?\\n");
            for (int i = 0; i < s.length; i++) {
                arrList.add(s[i]);
            }
        }
        br.close();
    } catch (Exception e) { }
}
Just replace numbers in replaceNumbers list.

1 commentaires

Au lieu de remplacer la valeur, essayez d'utiliser string :: Format depuis son efficacité plus efficace.



0
votes

Essayez quelque chose comme ça. En supposant que votre premier fichier de configuration est config0.txt et le dernier est config9.txt . xxx

le intrestream.range (A , b) la méthode génère un intestream de nombres à partir de A (inclus) à b (exclusif). < P> Aussi, j'utilise un ESSAYER Bloc avec des ressources Signification du BR.Close () est implicite. En savoir plus sur Essayez avec des ressources ici .


0 commentaires

0
votes

Vous pouvez mettre tous les chemins dans un tableau, puis naviguer dans le tableau comme indiqué ci-dessous:

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.ArrayList;
import java.util.List;

class Main {
    public static void main(String[] args) {    
        List<String> arrList = new ArrayList<String>();

        // Array of file path strings
        String[] paths = { "D:\\somedir\\abc.txt",
                "C:\\Users\\Dell\\Documents\\DataProcessing\\src\\config6.txt",
                "C:\\dir1\\dir2\\xyz.txt" };

        // Iterate paths[]
        for (String path : paths) {
            File config = new File(path);
            try {
                BufferedReader br = new BufferedReader(new FileReader(config));
                String st;
                while ((st = br.readLine()) != null) {
                    String s[] = st.split("\\r?\\n");
                    for (int i = 0; i < s.length; i++) {
                        arrList.add(s[i]);
                    }
                }
                br.close();
            } catch (Exception e) {
            }
        }
    }
}


0 commentaires