Discussions
Categories
- 197K All Categories
- 2.5K Data
- 546 Big Data Appliance
- 1.9K Data Science
- 450.8K Databases
- 221.9K General Database Discussions
- 3.8K Java and JavaScript in the Database
- 31 Multilingual Engine
- 552 MySQL Community Space
- 479 NoSQL Database
- 7.9K Oracle Database Express Edition (XE)
- 3.1K ORDS, SODA & JSON in the Database
- 556 SQLcl
- 4K SQL Developer Data Modeler
- 187.2K SQL & PL/SQL
- 21.4K SQL Developer
- 296.4K Development
- 17 Developer Projects
- 139 Programming Languages
- 293K Development Tools
- 110 DevOps
- 3.1K QA/Testing
- 646.1K Java
- 28 Java Learning Subscription
- 37K Database Connectivity
- 158 Java Community Process
- 105 Java 25
- 22.1K Java APIs
- 138.2K Java Development Tools
- 165.3K Java EE (Java Enterprise Edition)
- 19 Java Essentials
- 162 Java 8 Questions
- 86K Java Programming
- 81 Java Puzzle Ball
- 65.1K New To Java
- 1.7K Training / Learning / Certification
- 13.8K Java HotSpot Virtual Machine
- 94.3K Java SE
- 13.8K Java Security
- 205 Java User Groups
- 24 JavaScript - Nashorn
- Programs
- 468 LiveLabs
- 39 Workshops
- 10.2K Software
- 6.7K Berkeley DB Family
- 3.5K JHeadstart
- 5.7K Other Languages
- 2.3K Chinese
- 175 Deutsche Oracle Community
- 1.1K Español
- 1.9K Japanese
- 233 Portuguese
In Java, how do you insert, change, and remove file regions?

I'm searching for a Java class that manages text addition, replacement, and deletion for an existing file in the same way as StringBuilder does.
I don't want to use a StringBuilder since I don't want to keep the entire file in memory.
The goal is to apply patches to a file containing code written in any programming language.
Answers
-
While searching for answers I found out that we may change the existing StringBuilder sequence in two ways: we can delete certain components of the series or we can introduce text into the StringBuilder sequence. This article, (here) suggested that StringBuilder.insert(index,text) method can be used to insert text at the specified index.
-
You have basically 2 options:
- stream the file, making changes as you go, and write it back out as you read it in, or
- load the file into memory, make changes, and write it back out.
If you're working with source files, you're going to be working with files that should be less than a few thousand lines long each--so loading them into memory doesn't consume very much, and gives you a lot of flexibility.
If you insist on streaming the files and editing on the fly, your particular use cases are going to determine how big each chunk should be, so there's probably no general solution available. There are samples available on stack overflow, e.g. https://stackoverflow.com/questions/13741751/modify-the-content-of-a-file-using-java, for the streaming approach.
Why do you feel it's important not to load each file into memory?