[C#] Problemas com quebras de linha no StreamWriter

2 respostas
C

Galera,

Estou desenvolvendo uma aplicação em C# e preciso imprimir uma string formatada em um arquivo.

A minha string que eu passo para o método Write(str) da classe StreamWriter está formatada, porém com \n na quebra de linha, e o StreamWriter não vê isso como uma quebra de linha.

Como eu posso fazer essa quebra de linha?

Eis o meu código ("gambiarrado" pra ver se funcionava):

//  Monta objeto que escreve no arquivo
                    StreamWriter writer = new StreamWriter(txtSalvar.Text + "\\cls" + row.Cells[1].Value.ToString() + ".cs", true);

                    //  Formata string que será impressa no arquivo
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < conteudo.Length; i++)
                    {
                        //  Verifica quebra de linha (\n)
                        if (conteudo[i].Equals("\\") && conteudo[i + 1].Equals("n"))
                        {
                            //  Adiciona quebra de linha
                            sb.AppendLine();

                            //  Pula os dois caracteres de quebra de linha (\n)
                            i = i + 2;
                        }
                        sb.Append(conteudo[i]);
                    }

                    //  Escreve string no arquivo
                    writer.Write(sb.ToString());

                    //  Fecha writer
                    writer.Close();
                    writer.Dispose();
Tem alguma solução melhor que essa, já que essa não funcionou?!?!?!?!

2 Respostas

M

Olá.
Você pode usar o FileStream no lugar do StreamWriter. Ele é mais apropriado para manipulação de arquivos.

FileStream f = new FileStream("teste.txt", FileMode.OpenOrCreate); ASCIIEncoding ASCII = new ASCIIEncoding(); byte[] bytes = ASCII.GetBytes("texto \ncom \nquebra \nde \nlinha"); f.Write(bytes, 0, bytes.Length); f.Close();

O conteúdo do arquivo gerado é esse:

texto com quebra de linha

C

Aeeeeee…funcionou!

Vlw!

Criado 4 de novembro de 2011
Ultima resposta 7 de nov. de 2011
Respostas 2
Participantes 2