首页 > Java > java教程 > 正文

java如何对同一个文件进行读写操作?(代码)

不言
发布: 2018-09-28 13:42:09
转载
3123人浏览过

本篇文章给大家带来的内容是关于java如何对同一个文件进行读写操作?(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

同一个文件是不可以进行同时的读写的,因为我们写入文件会覆盖原文件的,如果这样,对于同一文件来来说,文件发生覆盖,无法进行下次读取

当然,对于两个不同的文件,可以一边读一边写的操作

题目:一个文本中存储26个无序字母,要求对字母排序后重新写入该文件中

分析:可以在内存中用一定的形式存储读入的文件内容,然后进行写入,分开操作。

立即学习Java免费学习笔记(深入)”;

1.用集合存储读入的文件

public static void fileRevise(File file) throws IOException {
        Reader reader=new BufferedReader(new FileReader(file));
        //读取的数据用内存为中介,存取,如建立一个集合
        int len;
        char[] charArray=new char[1024];
        //集合用于储存读取的数据
        List<Character> list=new ArrayList<>();//char 类型的集合,储存char[]读取的数据
        while ((len=reader.read(charArray))!=-1){
            for (int i = 0; i <len ; i++) {
                list.add(charArray[i]);//char->string
            }
        }
        char[] newArray=new char[list.size()];
        for (int i = 0; i <list.size() ; i++) {
            newArray[i]=list.get(i);
        }
        Arrays.sort(newArray);
        Writer write=new BufferedWriter(new FileWriter(file));
        write.write(newArray);
        //关闭流

        reader.close();
        write.close();
    }
登录后复制

2.用字符串存储,BufferReader中特有的readLine()方法可以一次读取一行

//用字符缓冲流的方法readline()读取,用字符串缓存,将字符串转为字符数组重新写入
    public static void fileRevise2(File file) throws IOException {
        Reader reader=new BufferedReader(new FileReader(file));
        StringBuilder sb=new StringBuilder();
        String str;
        while ((str=((BufferedReader) reader).readLine())!=null){
            sb.append(str);
        }
        System.out.print(sb);
        char[] cArray=sb.toString().toCharArray();//
        Arrays.sort(cArray);
        reader.close();
        Writer write=new BufferedWriter(new FileWriter(file));
        write.write(cArray);
        write.close();
    }
登录后复制

以上就是java如何对同一个文件进行读写操作?(代码)的详细内容,更多请关注php中文网其它相关文章!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:博客园网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号