1
I have an application to read a file. txt and seal specific columns and generate in the format I need, the application works, but the result is generated in the Netbeans console, then I copy the content, open Notepad++ and colo, and then I save the file, I wanted the application to do it automatically, I can already take file path and generate write path, but the generated file comes out with only 1 line, the rest it ignores. the code below is the Generate button, where it reads the file I selected, applies the defined rules and generates the file NOTE: In the console everything goes OK, recording problem that only generates 1 line.
String arquivoFinal = tflocaldestino.getText();
// Definição de espaços em Branco a ser gerado apos cada coluna obtida no arquivo original
int espacoaposcampo01 = Integer.parseInt(tfespacoscampo01.getText());
String espacoaposcampo_01_def = "";
for (int aux = 0; aux < espacoaposcampo01; aux++) {
espacoaposcampo_01_def += " ";
}
int espacoaposcampo02 = Integer.parseInt(tfespacoscampo02.getText());
String espacoaposcampo_02_def = "";
for (int aux = 0; aux < espacoaposcampo02; aux++) {
espacoaposcampo_02_def += " ";
}
int espacoaposcampo03 = Integer.parseInt(tfespacoscampo03.getText());
String espacoaposcampo_03_def = "";
for (int aux = 0; aux < espacoaposcampo03; aux++) {
espacoaposcampo_03_def += " ";
}
int espacoaposcampo04 = Integer.parseInt(tfespacoscampo04.getText());
String espacoaposcampo_04_def = "";
for (int aux = 0; aux < espacoaposcampo04; aux++) {
espacoaposcampo_04_def += " ";
}
int espacoaposcampo05 = Integer.parseInt(tfespacoscampo05.getText());
String espacoaposcampo_05_def = "";
for (int aux = 0; aux < espacoaposcampo05; aux++) {
espacoaposcampo_05_def += " ";
}
int espacoaposcampo06 = Integer.parseInt(tfespacoscampo06.getText());
String espacoaposcampo_06_def = "";
for (int aux = 0; aux < espacoaposcampo06; aux++) {
espacoaposcampo_06_def += " ";
}
int espacoaposcampo07 = Integer.parseInt(tfespacoscampo07.getText());
String espacoaposcampo_07_def = "";
for (int aux = 0; aux < espacoaposcampo07; aux++) {
espacoaposcampo_07_def += " ";
}
int espacoaposcampo08 = Integer.parseInt(tfespacoscampo08.getText());
String espacoaposcampo_08_def = "";
for (int aux = 0; aux < espacoaposcampo08; aux++) {
espacoaposcampo_08_def += " ";
}
int espacoaposcampo09 = Integer.parseInt(tfespacoscampo09.getText());
String espacoaposcampo_09_def = "";
for (int aux = 0; aux < espacoaposcampo09; aux++) {
espacoaposcampo_09_def += " ";
}
// Define Dados Fixos Personalizados, e espaços se houver
String dadosfixo01 = tfdadosfixo01.getText();
int espacofixo01 = Integer.parseInt(tfespacofixo01.getText());
String espacosfixo01_def = "";
for (int aux = 0; aux < espacofixo01; aux++) {
espacosfixo01_def += " ";
}
String dadosfixo02 = tfdadosfixo02.getText();
int espacofixo02 = Integer.parseInt(tfespacofixo02.getText());
String espacosfixo02_def = "";
for (int aux = 0; aux < espacofixo02; aux++) {
espacosfixo02_def += " ";
}
String dadosfixo03 = tfdadosfixo03.getText();
int espacofixo03 = Integer.parseInt(tfespacofixo03.getText());
String espacosfixo03_def = "";
for (int aux = 0; aux < espacofixo03; aux++) {
espacosfixo03_def += " ";
}
String dadosfixo04 = tfdadosfixo04.getText();
int espacofixo04 = Integer.parseInt(tfespacofixo04.getText());
String espacosfixo04_def = "";
for (int aux = 0; aux < espacofixo04; aux++) {
espacosfixo04_def += " ";
}
String dadosfixo05 = tfdadosfixo05.getText();
int espacofixo05 = Integer.parseInt(tfespacofixo05.getText());
String espacosfixo05_def = "";
for (int aux = 0; aux < espacofixo05; aux++) {
espacosfixo05_def += " ";
}
String dadosfixo06 = tfdadosfixo06.getText();
int espacofixo06 = Integer.parseInt(tfespacofixo06.getText());
String espacosfixo06_def = "";
for (int aux = 0; aux < espacofixo06; aux++) {
espacosfixo06_def += " ";
}
// Pegando caminho do Arquivo original
FileInputStream stream;
try {
stream = new FileInputStream(tflocalorigem.getText());
InputStreamReader reader = new InputStreamReader(stream);
BufferedReader br = new BufferedReader(reader);
// Lê linhas do Arquivo de acordo com colunas selecionadas de (inicio e fim)
String linha = br.readLine();
while (linha != null) {
String campo01 = linha.substring(Integer.parseInt(tfcol01inicio.getText()), Integer.parseInt(tfcol01fim.getText()));
String campo02 = linha.substring(Integer.parseInt(tfcol02inicio.getText()), Integer.parseInt(tfcol02fim.getText()));
String campo03 = linha.substring(Integer.parseInt(tfcol03inicio.getText()), Integer.parseInt(tfcol03fim.getText()));
String campo04 = linha.substring(Integer.parseInt(tfcol04inicio.getText()), Integer.parseInt(tfcol04fim.getText()));
String campo05 = linha.substring(Integer.parseInt(tfcol05inicio.getText()), Integer.parseInt(tfcol05fim.getText()));
String campo06 = linha.substring(Integer.parseInt(tfcol06inicio.getText()), Integer.parseInt(tfcol06fim.getText()));
String campo07 = linha.substring(Integer.parseInt(tfcol07inicio.getText()), Integer.parseInt(tfcol07fim.getText()));
String campo08 = linha.substring(Integer.parseInt(tfcol08inicio.getText()), Integer.parseInt(tfcol08fim.getText()));
String campo09 = linha.substring(Integer.parseInt(tfcol09inicio.getText()), Integer.parseInt(tfcol09fim.getText()));
String caixaaltacompo04 = campo04.toUpperCase(); // Transforma Texto de Caixa Baixa para Caixa Alta
campo04 = caixaaltacompo04; // campo04 recebe o Texto em Caixa Alta
System.out.println(dadosfixo01 + espacosfixo01_def
+ dadosfixo02 + espacosfixo02_def
+ campo01 + espacoaposcampo_01_def
+ campo02 + espacoaposcampo_02_def
+ campo03 + espacoaposcampo_03_def
+ dadosfixo03 + espacosfixo03_def
+ campo04 + espacoaposcampo_04_def
+ dadosfixo04 + espacosfixo04_def
+ dadosfixo05 + espacosfixo05_def
+ campo05 + espacoaposcampo_05_def);
linha = br.readLine(); // Pula a linha
File file = new File(caminhoDestino);
BufferedWriter writer = new BufferedWriter(new FileWriter(file));
writer.write(dadosfixo01 + espacosfixo01_def
+ dadosfixo02 + espacosfixo02_def
+ campo01 + espacoaposcampo_01_def
+ campo02 + espacoaposcampo_02_def
+ campo03 + espacoaposcampo_03_def
+ dadosfixo03 + espacosfixo03_def
+ campo04 + espacoaposcampo_04_def
+ dadosfixo04 + espacosfixo04_def
+ dadosfixo05 + espacosfixo05_def
+ campo05 + espacoaposcampo_05_def);
writer.newLine();
//Criando o conteúdo do arquivo
writer.flush();
//Fechando conexão e escrita do arquivo.
writer.close();
}
} catch (FileNotFoundException ex) {
Logger.getLogger(txt2Folha.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Arquivo não encontrado, Verefique o caminho e tente novamente");
} catch (IOException ex) {
Logger.getLogger(txt2Folha.class.getName()).log(Level.SEVERE, null, ex);
}
}
It worked here, now created the file . txt, Thank you. I have one more question, the final file that I will use in another application, does not allow to have blank lines at the end of the file, and in the recording it creates 1 extra line at the end blank, has some way to delete the last or not generate that blank line without having to enter the file and delete manually?
– Alex Basto
@Alexbasto Put your
writer.newLine();
within aif(linha != null)
, example:if(linha != null){writer.newLine();}
– Felipe Marinho