En aquest tema, aprendrem com escriure dades a fitxers utilitzant Java. La capacitat d'escriure dades a fitxers és essencial per a moltes aplicacions, ja que permet emmagatzemar informació de manera persistent.

Conceptes Clau

  1. Fluxos de Sortida (Output Streams): Són utilitzats per escriure dades a fitxers.
  2. Classes Principals:
    • FileWriter
    • BufferedWriter
    • PrintWriter
  3. Gestió d'Excepcions: És important gestionar les possibles excepcions que poden ocórrer durant l'escriptura de fitxers.

Classes i Mètodes

FileWriter

FileWriter és una classe que permet escriure caràcters a un fitxer. És una de les maneres més senzilles d'escriure dades a un fitxer en Java.

Exemple:

import java.io.FileWriter;
import java.io.IOException;

public class FileWriterExample {
    public static void main(String[] args) {
        try {
            FileWriter writer = new FileWriter("example.txt");
            writer.write("Hola, món!");
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

BufferedWriter

BufferedWriter proporciona una manera més eficient d'escriure caràcters a un fitxer, ja que utilitza un buffer intern per reduir el nombre d'operacions d'escriptura.

Exemple:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class BufferedWriterExample {
    public static void main(String[] args) {
        try {
            FileWriter writer = new FileWriter("example.txt");
            BufferedWriter bufferedWriter = new BufferedWriter(writer);
            bufferedWriter.write("Hola, món!");
            bufferedWriter.newLine();
            bufferedWriter.write("Aquesta és una segona línia.");
            bufferedWriter.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

PrintWriter

PrintWriter és una classe que proporciona mètodes convenients per escriure dades formatades a un fitxer.

Exemple:

import java.io.PrintWriter;
import java.io.IOException;

public class PrintWriterExample {
    public static void main(String[] args) {
        try {
            PrintWriter writer = new PrintWriter("example.txt");
            writer.println("Hola, món!");
            writer.printf("Aquest és un número: %d", 42);
            writer.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Exercicis Pràctics

Exercici 1: Escriure un Fitxer de Text

Objectiu: Escriure un programa que demani a l'usuari una línia de text i l'escrigui a un fitxer anomenat output.txt.

Solució:

import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class WriteToFile {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("Introdueix una línia de text:");
        String input = scanner.nextLine();

        try {
            FileWriter writer = new FileWriter("output.txt");
            writer.write(input);
            writer.close();
            System.out.println("Text escrit a output.txt");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Exercici 2: Escriure Múltiples Línies

Objectiu: Escriure un programa que demani a l'usuari diverses línies de text i les escrigui a un fitxer anomenat output.txt. El programa ha de continuar demanant línies fins que l'usuari introdueixi una línia buida.

Solució:

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class WriteMultipleLines {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        try {
            FileWriter writer = new FileWriter("output.txt");
            BufferedWriter bufferedWriter = new BufferedWriter(writer);

            while (true) {
                System.out.println("Introdueix una línia de text (o deixa en blanc per acabar):");
                String input = scanner.nextLine();
                if (input.isEmpty()) {
                    break;
                }
                bufferedWriter.write(input);
                bufferedWriter.newLine();
            }

            bufferedWriter.close();
            System.out.println("Text escrit a output.txt");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

Errors Comuns i Consells

  1. No tancar el flux: Assegura't de tancar el flux (close()) per evitar pèrdues de dades.
  2. Gestió d'excepcions: Sempre gestiona les possibles excepcions (IOException) per evitar que el programa es bloquegi.
  3. Ús de BufferedWriter: Utilitza BufferedWriter per millorar l'eficiència quan escriguis grans quantitats de dades.

Resum

En aquest tema, hem après com escriure dades a fitxers utilitzant diverses classes de Java com FileWriter, BufferedWriter i PrintWriter. També hem vist exemples pràctics i exercicis per reforçar els conceptes apresos. Ara estem preparats per avançar cap a la lectura de fitxers en el següent tema.

Curs de Programació en Java

Mòdul 1: Introducció a Java

Mòdul 2: Flux de Control

Mòdul 3: Programació Orientada a Objectes

Mòdul 4: Programació Orientada a Objectes Avançada

Mòdul 5: Estructures de Dades i Col·leccions

Mòdul 6: Gestió d'Excepcions

Mòdul 7: Entrada/Sortida de Fitxers

Mòdul 8: Multithreading i Concurrència

Mòdul 9: Xarxes

Mòdul 10: Temes Avançats

Mòdul 11: Frameworks i Llibreries de Java

Mòdul 12: Construcció d'Aplicacions del Món Real

© Copyright 2024. Tots els drets reservats