Write - FileOutputStream

No cídigo abaixo como faço para mudar de linha usando o metodo writeByte

public class TrataBinario {

  public static void main(String[] args)throws IOException{ 
	

	FileInputStream fis = new FileInputStream("c:\badfiles\ACF729003697215012004181500.TXT"); 
	DataInputStream dis = new DataInputStream(fis); 
	String  linha= null;
	System.out.println("recuperou o valor para string:"+linha); 
	
	
	FileOutputStream fos = new FileOutputStream("c:\badfiles\novoacf.txt"); 
			DataOutputStream dos = new DataOutputStream(fos); 
			
			//dos.writeChars(i);
	linha=dis.readLine();  
			
	while (linha!=null&&linha!="32"){
			
			dos.writeBytes(linha);
					
			
		
		
			
		[b]dos.writeBytes("10");
		dos.writeBytes("13");[/b]
		linha=dis.readLine();
	}
		dos.writeBytes("32");
		dis.close(); 
		dos.close(); 
  } 
}

Já tentou?

dos.writeBytes("\n");

já porem quando tento abrir o arquivo no notepad ele fica meio bagunçado mais no textedit ele abre corretamente. eu precisava de uma solução que abrisse legal com qualquer editor de testo.

OBS:No local daquela strings que digitei tem uma barra antes, mais não apareceu…(/32 /13 /10)

writeBytes converte sua String em um array de bytes e escreve estes bytes.

use

write(10);
write(13);

Uma dica, não use Streams para manipular arquivos de texto, eles servem somente para conteudo binario. Use Reader/Writer que te evitam todos esses problemas.

Infelizmente não está dando certo. Utilizando o reader conforme abaixo ele copia certo, porem o servidor não aceita. Da a mensagem que não é um arquivo binario, só dá certo quando utilizo o writeBytes (porem dá problema na quebra de linha. Vc´s tem alguma sugestão, por exemplo como tranformar esse arquivo copiado para binário.

import java.io.*;

class Test {
    static public void main(String[] args) {
        char[] buffer = new char[1024] ;
        int len ;
        try {
            FileReader r = new FileReader("ola.txt") ;
            FileWriter w = new FileWriter("ole.txt") ;
            while( (len = r.read(buffer)) != -1 )
                w.write(buffer, 0, len) ;
            r.close() ;
            w.close() ;
        } catch(IOException e) {
            // Tratar a excepção.
        }
    }
}

Retirado do Javadoc da classe java.io.FileWriter:

[quote]Convenience class for writing character files. The constructors of this class assume that the default character encoding and the default byte-buffer size are acceptable. To specify these values yourself, construct an OutputStreamWriter on a FileOutputStream.
(…)
FileWriter is meant for writing streams of characters. For writing streams of raw bytes, consider using a FileOutputStream.[/quote]

Com FileWriter vc só escreve arquivos “texto”. Isso vem da merda da libc fazer diferença entre arquivos texto e arquivos binários.

Vc pode escrever direto no FileOutputStream, só que vc tem que tratar os caracteres especiais. Mas isso aqui funciona:

byte b = '\n';

ou seja, lembre de escrever o barra-r e barra-n em bytes. A merda é ter que prestar atenção se vc tá no Windows ou no Linux, essas coisas.

boa sorte e []s!