Archivos de texto

Hola me podrían ayudar con lo siguiente por favor .

Necesito que al crear el archivo , me imprima con salto de linea , pero sale todo en una sola linea y no se por que, este es el ejercicio:

Escribir una aplicación llamada VentaDeProductos que haga lo siguiente:
Utilizando archivos de texto
I. Pregunte al usuario si desea usar el archivo de Productos existente o si
desea crearlo.
Si el usuario elige usar el archivo existente ejecutar desde el paso f).
De lo contrario ejecutar desde el paso a).
a) Crear un archivo llamado Productos
b) Preguntar cuantos son los productos a registrar en el archivo.
c) Pedir por pantalla los campos de cada uno de los registros para el
archivo, los campos a pedir son:
- Codigo (numérico)
- Precio (de costo)
d) Escribir cada registro en el archivo.
e) Cerrar el archivo.
f) Abrir de lectura el archivo Productos
g) Crear un archivo llamado ListaDeVenta
h) Leer todos y cada uno de los registros del archivo Productos
i) Procesar los datos de cada registro y escribir en el archivo de
ListaDeVenta el código, el precio de venta al público y el IVA 16%,
sabiendo que debe aumentarle un 50% al precio de costo
j) Mostrar por pantalla todos los datos del producto más económico para el
público.

import javax.swing.JOptionPane;
import java.io.*;

/**
 *
 */

public class VentaDeProductos
{
    public static void main(String [] ds)
    {

        Object[] o = {"Usar archivo existente","Crear nuevo archivo",
                "Salir"};
        String opcion = (String)JOptionPane.showInputDialog(
                null,"¿Qué deseas hacer? ",
                "",
                JOptionPane.QUESTION_MESSAGE,
                null,
                o,
                o[1]);

        switch(opcion) {          

            case "Usar archivo existente" :

            File file=new File("ProductosParaLeer.txt");

            break;

            case "Crear nuevo archivo" :
            try{

                File archivo = null;

                FileWriter archivoEscritura =null;
                BufferedWriter bufferedEscritura = null;

                archivo = new File("Productos.txt");
                archivoEscritura = new FileWriter(archivo);
                bufferedEscritura = new BufferedWriter(archivoEscritura);
                PrintWriter pw= new PrintWriter(bufferedEscritura);

                int cantidad = Integer.parseInt(JOptionPane.showInputDialog
                        ("¿Cuántos Productos quieres registrar?"));
                         int [][] arreglo = new int[cantidad][2];

                for (int indiceProducto = 0; indiceProducto<arreglo.length; indiceProducto++){
                    for(int indiceDatos=0;indiceDatos<arreglo[indiceProducto].length;indiceDatos++)
                    {
                        if(indiceDatos == 0){
                            arreglo[indiceProducto][0] = Integer.parseInt(JOptionPane.showInputDialog
                                    ("Ingresa el codigo"));
                        }

                        if(indiceDatos == 1){
                            arreglo[indiceProducto][1] = Integer.parseInt(JOptionPane.showInputDialog
                                    ("Ingresa el precio"));
                        }
                    }
                }
                String escribir = "";
                    for (int indiceProducto = 0; indiceProducto<arreglo.length; indiceProducto++)
                    {
                    escribir +="\n" ;
                    for(int indiceDatos=0;indiceDatos<arreglo[indiceProducto].length;indiceDatos++)
                    {
                     escribir += arreglo[indiceProducto][indiceDatos] + " ";

               
                    }
                }
                JOptionPane.showMessageDialog(null,escribir);
               
                pw.println(escribir);
               
                    pw.close();
                    bufferedEscritura.close();
                }catch(IOException e){

                }
                break;
                 case "Salir" :
                System.exit(0);
                break;
            }

        }
    }

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Checa esto

Creo que hay un tema similar a lo que tu buscas implementar y se encuentra en este mismo foro: Como generar un archivo txt en java

Acorde a lo que planteas creo que falta un poco más de validaciones.... un "Parche" rápido :D que puedes (pero no debes) implementar seria algo como:

                String escribir = "";
                String mostrarEscribir = "";
                for (int indiceProducto = 0; indiceProducto < arreglo.length; indiceProducto++) {
                    mostrarEscribir += "\n";
                    for (int indiceDatos = 0; indiceDatos < arreglo[indiceProducto].length; indiceDatos++) {
                        escribir += arreglo[indiceProducto][indiceDatos] + " ";
                        mostrarEscribir += arreglo[indiceProducto][indiceDatos]
                                + " ";
                    }
                    bufferedEscritura.write(escribir);
                    bufferedEscritura.newLine();
                    escribir = "";
                }
                JOptionPane.showMessageDialog(null, mostrarEscribir);

Con este parche se quita toda referencia a "PrintWriter pw= new PrintWriter(bufferedEscritura);", pero como digo no es bueno, mejor verifica el tema que te pongo referenciado y checalo, hay código que puedes ahorrarte.