Skip to content

Commit 7bb4a3a

Browse files
committed
JAVA - Archivos
Signed-off-by: diwes-gh <alejandro@alejandroalsa.es>
1 parent b660581 commit 7bb4a3a

File tree

1 file changed

+186
-0
lines changed

1 file changed

+186
-0
lines changed
Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
---
2+
title: Manejo de archivos
3+
date: 2024-01-08 8:00:00 +0800
4+
categories: [Programación, Java]
5+
tags: [Java]
6+
---
7+
8+
# Manejo de archivos
9+
10+
El manejo de archivos es una parte esencial de cualquier aplicación, en Java existen varios métodos de crear, escribir, leer y eliminar archivos.
11+
12+
La clase `File` del paquete `java.io`, permite trabajar con archivos.
13+
14+
```java
15+
// Crea un objeto de la clase `File` del paquete `java.io` para crear un archivo
16+
17+
import java.io.File;
18+
19+
public class main{
20+
File miObjeto = new File("test.txt");
21+
}
22+
```
23+
24+
La clase `File` tiene muchos métodos útiles para crear y obtener información sobre archivos:
25+
26+
| Método | Tipo | Descripción |
27+
| ----------------- | -------- | -------------------------------------------------- |
28+
| canRead() | Boolean | Prueba si el archivo es legible o no |
29+
| canWrite() | Boolean | Prueba si el archivo es escribible o no |
30+
| createNewFile() | Boolean | Crea un archivo vacío |
31+
| delete() | Boolean | Elimina un archivo |
32+
| exists() | Boolean | Prueba si el archivo existe |
33+
| getName() | String | Devuelve el nombre del archivo |
34+
| getAbsolutePath() | String | Devuelve la ruta absoluta del archivo |
35+
| length() | Long | Devuelve el tamaño del archivo en bytes |
36+
| list() | String[] | Devuelve un array de los archivos en el directorio |
37+
| mkdir() | Boolean | Crea un directorio |
38+
39+
## Crear / Escribir archivos
40+
41+
Para crear un archivo en Java, podemos utilizar el método `createNewFile()`, este nos devuelve un valor booleano `true` si el archivo se creó correctamente y `false` si el archivo ya exist. Hay que tener en cuenta que el método lo tendremos que encerrar en un `try..catch` ya que si el método arroja un `IOExeption` nuestro programa de detendrá.
42+
43+
```java
44+
import java.io.File;
45+
import java.io.IOException;
46+
47+
public class main{
48+
public static void main(String[] args){
49+
try{
50+
File miObjeto = new File("test.txt");
51+
if (miObjeto.createNewFile()){
52+
System.out.println("Archivo creado: " + miObjeto.getName());
53+
} else {
54+
System.out.println("El archivo ya existe");
55+
}
56+
} catch (IOExecptio e) {
57+
System.out.println("Algo salio mal");
58+
e.printStackTrace();
59+
}
60+
}
61+
}
62+
```
63+
64+
En el caso de que queramos indicar una ruta bastara con escribirla
65+
66+
```java
67+
File miObjeto = new File("/home/alejandroalsa.es/test.txt");
68+
```
69+
70+
En el siguiente ejemplo escribiremos algo de texto en el archivo que acabamos de crear, para ello utilizaremos la clase `FileWtriter`junto con su método `Write()`. Tenemos que tener en cuenta que cuando haya terminado de escribir en el archivo, debemos cerrarlo con el método `close()`
71+
72+
```java
73+
import java.io.File;
74+
import java.io.FileWriter;
75+
import java.io.IOException;
76+
77+
public class main {
78+
public static void main(String[] args) {
79+
try {
80+
File miObjeto = new File("test.txt");
81+
if (miObjeto.createNewFile()) {
82+
System.out.println("Archivo creado: " + miObjeto.getName());
83+
84+
FileWriter texto = new FileWriter(miObjeto);
85+
texto.write("Visita https://alejandroalsa.es para leer contenido de calidad.");
86+
texto.close();
87+
88+
System.out.println("Contenido agregado exitosamente");
89+
} else {
90+
System.out.println("El archivo ya existe");
91+
}
92+
} catch (IOException e) {
93+
System.out.println("Algo salió mal");
94+
e.printStackTrace();
95+
}
96+
}
97+
}
98+
```
99+
100+
## Leer archivos
101+
102+
Para poder leer archivos utilizamos la clase `Scanner` del paquete `java.util`
103+
104+
```java
105+
import java.io.File;
106+
import java.io.FileWriter;
107+
import java.io.FileNotFoundException;
108+
import java.io.IOException;
109+
import java.util.Scanner;
110+
111+
public class main {
112+
public static void main(String[] args) {
113+
try {
114+
File miObjeto = new File("test.txt");
115+
if (miObjeto.createNewFile()) {
116+
System.out.println("Archivo creado: " + miObjeto.getName());
117+
118+
FileWriter texto = new FileWriter(miObjeto);
119+
texto.write("Visita https://alejandroalsa.es para leer contenido de calidad.");
120+
texto.close();
121+
122+
System.out.println("Contenido agregado exitosamente");
123+
} else {
124+
System.out.println("El archivo ya existe");
125+
}
126+
127+
Scanner lectura = new Scanner(miObjeto);
128+
while (lectura.hasNextLine()) {
129+
String contenido = lectura.nextLine();
130+
System.out.println("Contenido del archivo: " + contenido);
131+
}
132+
lectura.close();
133+
} catch (FileNotFoundException e) {
134+
System.out.println("Algo salió mal");
135+
e.printStackTrace();
136+
} catch (IOException e) {
137+
System.out.println("Algo salió mal");
138+
e.printStackTrace();
139+
}
140+
}
141+
}
142+
```
143+
144+
También podemos obtener información del archivo haciendo uso de cualquiera de los métodos de `File`
145+
146+
```java
147+
import java.io.File;
148+
149+
public class main {
150+
public static void main(String[] args) {
151+
File miObjeto = new File("test.txt");
152+
if (miObjeto.exists()) {
153+
System.out.println("Nombre del archivo: " + miObjeto.getName());
154+
System.out.println("Directorio: " + miObjeto.getAbsolutePath());
155+
System.out.println("Escritura: " + miObjeto.canWrite());
156+
System.out.println("Lectura " + miObjeto.canRead());
157+
System.out.println("Tamaño en bytes " + miObjeto.length());
158+
} else {
159+
System.out.println("El archivo no existe");
160+
}
161+
}
162+
}
163+
```
164+
165+
> NOTA: Hay muchas clases disponibles en la API de Java que se pueden usar para leer y escribir archivos en Java: `FileReader`, `BufferedReader`, `Files`, `Scanner`, `FileInputStream`, `FileWriter`, `BufferedWriter`, `FileOutputStream`, etc. Cuál usar depende de la versión de Java con la que estés trabajando y de si necesitas leer bytes o caracteres, y el tamaño del archivo/líneas, etc.
166+
167+
## Eliminar archivos
168+
169+
Para eliminar un archivo en Java utilizamos el método `delete()`
170+
171+
```java
172+
import java.io.File;
173+
174+
public class main {
175+
public static void main(String[] args) {
176+
File miObjeto = new File("test.txt");
177+
if (miObjeto.delete()) {
178+
System.out.println("Archivo eliminado: " + miObjeto.getName());
179+
} else {
180+
System.out.println("No se puede eliminar el archivo: " + miObjeto.getName());
181+
}
182+
}
183+
}
184+
```
185+
186+
> NOTA: Si queremos eliminar una carpeta solo tendremos que indicar la ruta, pero tenemos que tener en cuenta que si esta carpeta ya tiene archivos Java no la eliminara.

0 commit comments

Comments
 (0)