java bufferedReader 读出来为什么都是空的?
PHP中文网
PHP中文网 2017-04-18 09:36:10
0
3
471

帮朋友提问:

        File file1 = new File("D:\\a.txt");
        File file2 = new File("D:\\a.txt");
        FileWriter fileWriter2 = new FileWriter(file2);
        FileReader fileReader = new FileReader(file1);
        BufferedReader bufferedReader = new BufferedReader(fileReader);
        BufferedWriter bufferedWriter2 = new BufferedWriter(fileWriter2);
        String length = null;
            
        while((length=bufferedReader.readLine())!=null) {
            System.out.println(length);
            
            bufferedWriter2.write(length);
        }
        fileReader.close();
        bufferedWriter2.close();

这段代码为什么读到的length都是null?
我个人觉得是因为file1和file2同时打开a.txt,会出现读写冲突,导致都出来的都是null,不知大家怎么看?

PHP中文网
PHP中文网

认证高级PHP讲师

répondre à tous(3)
大家讲道理

Java IO fonctionne sur la base d'un flux d'octets Bien sûr, le flux de caractères est également complété via un flux d'octets au niveau de la couche inférieure. Il y a un pointeur implicite pour représenter le courant. emplacement à partir duquel lire ou écrire.

@iMouseWu a raison, car lorsque l'objet FileOutputStream est créé, il effectuera une opération native open() Si l'attribut append n'est pas spécifié comme true, le pointeur se déplacera vers le. début du fichier, ce qui équivaut à effacer l’opération sur le fichier.

Bien sûr, le FileWiter utilisé par le sujet est également implémenté via FileOutputStream.

    public FileWriter(File file, boolean append) throws IOException {
        super(new FileOutputStream(file, append));
    }

De plus, si vous devez lire et écrire des fichiers en même temps, il est recommandé d'utiliser RandomAccessFile.

巴扎黑

Je l'ai testé new FileWriter(file2) et le contenu du fichier a été automatiquement effacé...
Mais j'ai vérifié le document et il ne stipule pas que le contenu peut être effacé lors de l'utilisation du nouveau....

迷茫

FileWriter fileWriter2 = new FileWriter(file2,true);
Créez FileWriter et modifiez l'ajout en true

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal