Guide for mass cat
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:
- Llegeix una línia de l'entrada estàndard: aquest és el nom del fitxer (per exemple
a1.txt). - El fitxer real es troba dins la carpeta
in/, així que el path que has d'obrir és \"in/" + nomDelFitxer. - Obre el fitxer per lectura i ves llegint-lo línia a línia fins arribar al final.
- 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.