Home > Java > javaTutorial > How to read and write the same file in java? (code)

How to read and write the same file in java? (code)

不言
Release: 2018-09-28 13:42:48
forward
3006 people have browsed it

The content of this article is about how to read and write the same file in Java? (code), it has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

The same file cannot be read and written at the same time, because when we write the file, the original file will be overwritten. If so, for the same file, the file will be overwritten and cannot be read next time.

Of course, for two different files, you can read and write at the same time

Title: 26 unordered letters are stored in a text, and it is required to sort the letters and then rewrite the file Medium

Analysis: The read file contents can be stored in a certain form in the memory, and then written and operated separately.

1. Use collections to store read files

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();
    }
Copy after login

2. Use string storage. The unique readLine() method in BufferReader can read one line at a time

//用字符缓冲流的方法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();
    }
Copy after login

The above is the detailed content of How to read and write the same file in java? (code). For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:cnblogs.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template