12
Апр
2016

Как записать символы/байты в начало файла не стирая имеющиеся данные?

Доброго времени суток. Пытался сделать программу, в которой данные добавляются в начало файла. Натолкните на мыслю, с помощью каких классов и методов можно это реализовать? Пример моей реализации (не ругайте за плохой код, буду рад обоснованным замечаниям), при которой перезаписываются имеющиеся данные.

import java.io.*;

public class Solution {
    public static void main(String[] args) throws IOException
    {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        File file = new File(reader.readLine());
        RandomAccessFile ramFile = new RandomAccessFile(file, "w");
        FileInputStream inputStream = new FileInputStream(reader.readLine());
        byte[] b = new byte[2048];
        while(inputStream.available() > 0){
            int count = inputStream.read(b);
            ramFile.seek(0);
            ramFile.write(b, 0, count);
        }
        reader.close();
        ramFile.close();
        inputStream.close();
    }
}

Источник: https://ru.stackoverflow.com/questions/512433/%D0%9A%D0%B0%D0%BA-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D0%B0%D1%82%D1%8C-%D1%81%D0%B8%D0%BC%D0%B2%D0%BE%D0%BB%D1%8B-%D0%B1%D0%B0%D0%B9%D1%82%D1%8B-%D0%B2-%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D0%BE-%D1%84%D0%B0%D0%B9%D0%BB%D0%B0-%D0%BD%D0%B5-%D1%81%D1%82%D0%B8%D1%80%D0%B0%D1%8F-%D0%B8%D0%BC%D0%B5%D1%8E%D1%89%D0%B8%D0%B5%D1%81%D1%8F-%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%B5

Тебе может это понравится...

Добавить комментарий