> For the complete documentation index, see [llms.txt](https://educacion.gitbook.io/programacion/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://educacion.gitbook.io/programacion/ud5-entrada-e-saida-da-informacion/ficheiros/excepciones-entrada-saida.md).

# Excepciones Entrada/Saida

Cando esteamos a traballar con ficheiros, imos a manexar principalmente dous tipos de excepcións:

## IOException

A excepción `IOException` (*Input/Output Exception*) pertence ao paquete `java.io` e ocorre cando hai un erro de entrada ou saída, como problemas ao ler ou escribir nun ficheiro, problemas de conexión ou cando un ficheiro non existe.

Características de `IOException`:

* É unha **excepción comprobada** (*checked exception*), polo que debe ser manexada con `try-catch` ou declarada con `throws`.
* É a clase base de varias excepcións máis específicas, como `FileNotFoundException`.
* Úsase en operacións de ficheiros (`FileReader`, `BufferedWriter`, `Scanner`, etc.) e fluxos de entrada/saída (`InputStream`, `OutputStream`).

Causas comúns de `IOException`:

| Causa                     | Descrición                                   |
| ------------------------- | -------------------------------------------- |
| Ficheiro non atopado      | Intentar ler un ficheiro que non existe.     |
| Permisos insuficientes    | Intentar escribir nun ficheiro sen permisos. |
| Erro de lectura/escritura | Problemas físicos ou fallos no disco.        |
| Ficheiro xa en uso        | Outro proceso ten bloqueado o ficheiro.      |
| Problemas de rede         | Erros ao traballar con conexións remotas.    |

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

public class EjemploIOException {
    public static void main(String[] args) {
        try {
            FileWriter escritor = new FileWriter("archivo.txt");
            escritor.write("Escribiendo en el archivo...");
            escritor.close();
        } catch (IOException e) {
            System.out.println("Error: Ocurrió un problema de entrada/salida.");
        }
    }
}
```

## FileNotFoundException

A excepción **`FileNotFoundException`** pertence ao paquete **`java.io`** e ocorre cando se intenta acceder a un ficheiro que **non existe**, non pode ser atopado na ruta indicada ou non se teñen os **permisos necesarios** para acceder a el.

#### Características de `FileNotFoundException`:

* É unha **excepción comprobada (checked exception)**, polo que debe ser manexada con `try-catch` ou declarada con `throws`.
* É unha **subclase de `IOException`**, polo que indica erros máis específicos relacionados coa localización ou acceso a ficheiros.
* Prodúcese habitualmente ao traballar con clases como `FileInputStream`, `FileReader`, `FileOutputStream` ou `Scanner` cando o ficheiro non existe ou non é accesible.

```java
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class EjemploFileNotFoundException {
    public static void main(String[] args) {
        try {
            File archivo = new File("archivoInexistente.txt");
            Scanner lector = new Scanner(archivo);
        } catch (FileNotFoundException e) {
            System.out.println("Error: El archivo no fue encontrado.");
        } catch (IOException e) {
            System.out.println("Error: Entrada/Salida.");
        }
    }
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://educacion.gitbook.io/programacion/ud5-entrada-e-saida-da-informacion/ficheiros/excepciones-entrada-saida.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
