I need to develop a program that given an input file, generates a java output file

Asked

Viewed 33 times

-2

Given an input file, generate an output file as shown below

Arquivo de Entrada  |  Arquivo de Saida
--------------------+--------------------
1                   |  impar
2                   |  par
3                   |  impar
4                   |  par
5                   |  impar
6                   |  par 

I was only able to read the txt file and separate the pairs from the odd wanted to know how to create output file with odd pair, odd etc without having to separate them

import java.io.BufferedReader;
import java.io.FileReader;


public class Questao1
{
    public static void main(String [] args) {

        try 
        { 
            FileReader arquivo = new FileReader("Entrada1.txt"); 
            BufferedReader leitor = new BufferedReader(arquivo);

            String linha = leitor.readLine();
            String pares = "";
            String impares = "";
            while (linha != null) 
            {
                int numero = Integer.parseInt(linha);
                if (numero % 2 == 0){
                   pares += numero + "\n";
                } else{  
                    impares += numero + "\n";
                }

            linha = leitor.readLine();
             }
            leitor.close();
                System.out.println(pares);
                System.out.println(impares);
        } 



        catch (Exception ex) {
            System.err.print(ex.getMessage());
        }
    }
}

1 answer

0

I made an implementation here, the program will read the file, analyze and convert the data and write the file with the formatting indicated in your question.

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;

public class Main {
    public static void main(String[] args) {
        // Os arquivos de entrada e saida.
        String inputFilename = "input.txt";
        String outputFilename = "output.txt";

        // Lista de entrada.
        List<String> lines = new ArrayList<>();

        // Abre o arquivo de entrada.
        try (BufferedReader buffer = new BufferedReader(new FileReader(inputFilename))) {
            String line;
            // Ler linha por linha.
            while ((line = buffer.readLine()) != null) {
                // Adiciona cada linha na lista lines.
                lines.add(line);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        // Lista de saida.
        List<String> outputLines = new ArrayList<>();

        // Ler cada item da lista lines.
        for (String line : lines) {
            // Converte o item para int.
            int numberInLine = Integer.parseInt(line);

            // Verifica se numberInLine é par ou impar e atribui o resultado a data.
            String data = numberInLine % 2 == 0 ? "par" : "impar";

            // Adiciona data na lista de saida.
            outputLines.add(data);
        }

        // Abre o arquivo de saida.
        try (BufferedWriter buffer = new BufferedWriter(new FileWriter(outputFilename))) {
            buffer.write("Arquivo de Entrada  |  Arquivo de Saida  ");
            buffer.newLine();

            buffer.write("--------------------+--------------------");
            buffer.newLine();

            // Faz um loop na lista lines.
            for (int i = 0; i < lines.size(); i++) {
                // Escreve cada item na lista lines e outputLines com uma formatação de espaços em branco.
                buffer.write(String.format("%-20s|  %-18s", lines.get(i), outputLines.get(i)));
                // Adiciona uma nova quebra de linha.
                buffer.newLine();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Example

Input file:

0
1
2
3
4
5
6
7
8
9

Output file:

Arquivo de Entrada  |  Arquivo de Saida  
--------------------+--------------------
0                   |  par               
1                   |  impar             
2                   |  par               
3                   |  impar             
4                   |  par               
5                   |  impar             
6                   |  par               
7                   |  impar             
8                   |  par               
9                   |  impar             

Browser other questions tagged

You are not signed in. Login or sign up in order to post.