I File in Java

Da Bioingegneria Elettronica e Informatica.

Introduzione

Java fornisce classi e metodi per scrivere e leggere dati da files; le tipologie di files che si possono trovare sono sostanzialmente due:

  • file di testo;
  • file binari.

Grazie alle classi fornite da Java, la gestione dell'input/output da file è indipendente dalla piattaforma su cui il programma verrà eseguito; inoltre, le operazioni di I/O sono basate sul concetto di flusso (stream), ovvero una sequenza ordinata di dati che ha una sorgente e una destinazione.

Per leggere dati da una sorgente bisogna collegarla a uno stream, dove leggere le informazioni in modo ordinato. Analogamente, per scrivere dati su una destinazione, bisogna collegarla a uno stream in cui inserire i dati in modo sequenziale. All’inizio di queste operazioni occorre aprire lo stream e alla fine occorre chiuderlo.

Lettura e Scrittura su File

  1. import java.io.BufferedReader;
  2. import java.io.DataOutputStream;
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileNotFoundException;
  6. import java.io.FileOutputStream;
  7. import java.io.IOException;
  8. import java.io.InputStreamReader;
  9. import java.io.PrintWriter;
  10.  
  11. public class File_Test {
  12.  
  13. 	String fileName = "ciao.txt";
  14.  
  15. 	public void printFile() {
  16. 		try {
  17. 			PrintWriter output = new PrintWriter(fileName);
  18. 			output.write("casa");
  19. 			output.close();
  20. 		} catch (FileNotFoundException e) {
  21. 			// TODO Auto-generated catch block
  22. 			e.printStackTrace();
  23. 		}
  24. 	}
  25.  
  26. 	public String readFromFile() {	
  27. 		String line = null;
  28. 		try {
  29. 			InputStreamReader console = new InputStreamReader(System.in);	
  30. 			InputStreamReader file = new InputStreamReader(new FileInputStream(new File("ciao.txt")));
  31.  
  32. 			BufferedReader reader = new BufferedReader(console);
  33. 			line = reader.readLine();
  34. 			reader.close();
  35. 			console.close();
  36.  
  37.  
  38. 		} catch (IOException e) {
  39. 			// TODO Auto-generated catch block
  40. 			e.printStackTrace();
  41. 		}
  42. 		return line;
  43. 	}
  44.  
  45. 	public void writeBinaryFile() {
  46. 		int[] v = new int[] {1000,2,3,4,5,6,7,8,9,10};
  47. 		try {
  48. 			FileOutputStream file = new FileOutputStream(new File("binario.dat"));
  49. 			DataOutputStream stream = new DataOutputStream(file);
  50. 			for (int i = 0; i < 10; i++) {
  51. 				stream.writeInt(v[i]);
  52. 			}
  53. 			//stream.close();
  54. 			file.close();
  55. 		} catch (Exception e) {
  56. 			// TODO Auto-generated catch block
  57. 			e.printStackTrace();
  58. 		}
  59. 	}
  60. }