Quebra uma String a cada 32 caracteres

Boa tarde,

Eu preciso quebra uma determinada string a cada 32 caracteres…

Oque eu tenho é o seguinte:

FileReader reader = new FileReader("C:/Users/Apanhamentos/Desktop/link.txt"); 
		BufferedReader leitor = new BufferedReader(reader);  
		String linha = null;  
		while((linha = leitor.readLine()) != null) { 
			System.out.println(linha);	
		} 
		leitor.close();  
		reader.close();  

Ou seja eu pego um arquivo txt e a partir dele eu quebro o texto a cada 32 caracteres… so que eu travei na parte de separa… alguem tem alguma ideia de como fazer?

[]'s

Use o método “substring” da classe String:

http://download.oracle.com/javase/7/docs/api/java/lang/String.html#substring(int,%20int)

Um pouquinho de contas não vai fazer mal também. Algo como 0, 32, 64, etc.

fala

Então cara eu tinha feito assim:

while((linha = leitor.readLine()) != null) { 
			System.out.println(linha.substring(comeco, fim));
			fim=fim+32;
			comeco=comeco+32;
			System.out.println(fim +" "+ comeco);
		} 

Porem ele imprimi:

E o texto original é assim:

oque esta de errado ali?

Você nunca escreveu em pseudo-código (ou português estruturado) na vida ? Deveria ter visto que há dois laços aqui, não um apenas: um para pegar as linhas do arquivo de entrada, e outro laço (mais interno) para separar cada linha lida em pedaços de 32 caracteres:

seria mais ou menos isso?

while((linha = leitor.readLine()) != null) { 
			for (int i = 0; i < linha.length(); i++) {
				System.out.println(linha.substring(comeco, fim));
				fim=fim+32;
				comeco=comeco+32;
			}
		} 

Ai ele imprimi:

Logicamente que ele gera uma:

Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 384
	at java.lang.String.substring(Unknown Source)
	at Quebra.main(Quebra.java:26)

Ainda não tratei ela…

Leia o arquivo todo primeiro e depois quebre ele…da forma como está fazendo ele vai imprimir os primeiros 32 caracteres de cada linha e não do texto todo.

No final ficou assim:

[code]
FileReader reader = new FileReader(“C:/Users/Apanhamentos/Desktop/link.txt”);
BufferedReader leitor = new BufferedReader(reader);
String linha = null;

	int fim=32;
	int comeco=0;
	StringBuilder builder= new StringBuilder();
	while((linha = leitor.readLine()) != null) { 
		builder.append(linha);
	} 

	for (int i = 0; i < builder.length(); i++) {
		System.out.println(builder.substring(comeco, fim));
		fim=fim+32;
		comeco=comeco+32;
	}
	leitor.close();  
	reader.close();  
}[/code]

Só pra dar mais uma alternativa (e mostrar como expressão regular é legal):


  String textoOriginal = .... // o conteudo do arquivo

  String textoTratrado = textoOriginal.replaceAll("(.{32})", "$1\n");