Java agrega texto a una línea específica en un archivo

Me gustaría saber si es posible agregar una línea en un archivo con Java.

Por ejemplo myFile:

1: line 1
2: line 2
3: line 3
4: line 4

Me gustaría agregar un ejemplo de línea de zorro en la tercera línea para que se vea así

1: line 1
2: line 2
3: new line
4: line 3
5: line 4

Descubrí cómo agregar texto en un archivo vacío o al final del archivo, pero no sé cómo hacerlo en el medio del texto sin borrar la línea.

¿Es la otra forma de cortar el primer archivo en 2 partes y luego crear un archivo, agregar la primera parte a la nueva línea y luego la segunda parte porque eso se siente un poco extremo?

Gracias

Respuesta 1

En Java 7+ puede usar la clase Filesy de Pathla siguiente manera:

List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);
lines.add(position, extraLine);
Files.write(path, lines, StandardCharsets.UTF_8);

Para dar un ejemplo:

Path path = Paths.get("C:\\Users\\foo\\Downloads\\test.txt");
List<String> lines = Files.readAllLines(path, StandardCharsets.UTF_8);

int position = lines.size() / 2;
String extraLine = "This is an extraline";  

lines.add(position, extraLine);
Files.write(path, lines, StandardCharsets.UTF_8);
Respuesta: 2

Hoy, cuando estaba leyendo mis notas de clase, no entiendo cuál es el propósito de extender en este contexto. Considere este código: import java.net. *; import java.awt. *; clase pública QueenApl ...

Estoy trabajando en una empresa que es nueva en Java y soy el único programador de Java y necesito escribir sobre 10 sistemas en unos pocos meses. La empresa tiene otros 2 programadores que conocen Java básico. No ...

He leído este enlace sobre GetByteArrayElements: Preguntas frecuentes: ¿Cómo comparto datos en bruto con código nativo? http://developer.android.com/training/articles/perf-jni.html Dijo que GetByteArrayElements ...

Soy nuevo en el desarrollo de Android, pero tengo algunos conocimientos de los conceptos de OOP. Estoy tratando de aprender Android desde la perspectiva de Java. Entiendo que savedInstanceState dentro de onCreate () en la línea 9 es el ...