Maison >Java >javaDidacticiel >Comment fusionner plusieurs fichiers en Java

Comment fusionner plusieurs fichiers en Java

angryTom
angryTomoriginal
2020-02-03 09:21:044176parcourir

Dans les projets réels, lors du traitement de fichiers plus volumineux, les fichiers sont souvent divisés en plusieurs sous-fichiers pour le traitement, et finalement ces sous-fichiers sont fusionnés. Ci-dessous, je vais vous présenter comment fusionner plusieurs fichiers en Java.

Comment fusionner plusieurs fichiers en Java

Le moyen le plus simple de fusionner des sous-fichiers en Java est d'utiliser BufferedStream pour la lecture et l'écriture.

La méthode de mise en œuvre spécifique est la suivante. Le code est très détaillé pour votre référence et votre étude.

1. Créez d'abord la méthode mergeFiles, recevez le tableau de chaînes et les paramètres de chaîne, et complétez la fonction de fusion de fichiers

public static boolean mergeFiles(String[] fpaths, String resultPath) {
    if (fpaths == null || fpaths.length < 1 || TextUtils.isEmpty(resultPath)) {
        return false;
    }
    if (fpaths.length == 1) {
        return new File(fpaths[0]).renameTo(new File(resultPath));
    }

    File[] files = new File[fpaths.length];
    for (int i = 0; i < fpaths.length; i ++) {
        files[i] = new File(fpaths[i]);
        if (TextUtils.isEmpty(fpaths[i]) || !files[i].exists() || !files[i].isFile()) {
            return false;
        }
    }

    File resultFile = new File(resultPath);

    try {
        int bufSize = 1024;
        BufferedOutputStream outputStream = new BufferedOutputStream(new FileOutputStream(resultFile));
        byte[] buffer = new byte[bufSize];

        for (int i = 0; i < fpaths.length; i ++) {
            BufferedInputStream inputStream = new BufferedInputStream(new FileInputStream(files[i]));
            int readcount;
            while ((readcount = inputStream.read(buffer)) > 0) {
                outputStream.write(buffer, 0, readcount);
            }
            inputStream.close();
        }
        outputStream.close();
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        return false;
    } catch (IOException e) {
        e.printStackTrace();
        return false;
    }

    for (int i = 0; i < fpaths.length; i ++) {
        files[i].delete();
    }

    return true;
}

2. La méthode mergeFiles est appelée dans la fonction principale. Lorsqu'elle est utilisée, le tableau d'adresses de plusieurs fichiers est transmis et l'adresse du fichier de sortie est transmise.

public static void main(String[] args) {
          mergeFiles(new String[]{"D:/in_1.txt", "D:/in_2.txt", "D:/in_3.txt"}, "D:/output.txt");
}

(Partage de didacticiels vidéo associés : tutoriel vidéo Java)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn