Guide for mass cat


Això és una guia per ajudar-te a començar amb aquest problema — no és la solució.
Mostra el codi per a: Consideracions generals Java 11 Python 3

Com abordar aquest problema

Se't dona el nom d'un fitxer per l'entrada, i has d'imprimir tot el contingut d'aquest fitxer, \ línia per línia, tal com faria la comanda cat de Linux.

Idea general:

  1. Llegeix una línia de l'entrada estàndard: aquest és el nom del fitxer (per exemple a1.txt).
  2. El fitxer real es troba dins la carpeta in/, així que el path que has d'obrir és \ "in/" + nomDelFitxer.
  3. Obre el fitxer per lectura i ves llegint-lo línia a línia fins arribar al final.
  4. Cada línia que llegeixis del fitxer, escriu-la directament a la sortida.

Paranys habituals:

  • No intentis accedir a cap altre directori que no sigui in/: està prohibit i està vigilat.
  • Vigila de no afegir salts de línia de més ni de menys respecte al fitxer original.
  • Recorda tancar el fitxer un cop l'has llegit sencer.

Pista per a Java

En Java pots llegir el nom del fitxer amb Scanner, i després obrir-lo amb un BufferedReader \ llegint línia a línia fins que readLine() retorni null:

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) throws IOException {
        Scanner sc = new Scanner(System.in);
        String nomFitxer = sc.nextLine();

        BufferedReader reader = new BufferedReader(new FileReader("in/" + nomFitxer));
        String linia = reader.readLine();
        while (linia != null) {
            System.out.println(linia);
            linia = reader.readLine();
        }
        reader.close();
    }
}

Fixa't que el path sempre és "in/" + nomDelFitxer, mai un altre directori.


Tornar al problema