Java I/O

other languages: Inglese

Questo articolo contiene alcuni snippet di codice che uso comunemente per l’ I/O con Java.

Creazione file temporaneo

Crea un file temporaneo all’interno di una directory specificata

/** massimo indice raggiungibile dai files temporanei */
public static int MAX_INDEX = 100;

/**
 * Crea un file temporaneo nella cartella specificata. Per la creazione usa
 * il prefisso ed il postfisso passati. I file temporanei vengono numerati
 * in base ad un indice interno.
 *
 * @param baseDir percorso della directory base
 * @param prefix prefisso del file
 * @param postfix postfisso del file
 * @return File temporaneo oppure null
 */
public static File createTempFile(String baseDir, String prefix,
		String postfix) throws Exception {
	File parentDir = new File(baseDir);
	File tempFile = null;
	if (parentDir != null) {
		for (int index = 0; index < MAX_INDEX; index++) {
			tempFile = new File(parentDir, prefix + "_" + index + postfix);
			if (!tempFile.exists()) {
				if (tempFile.createNewFile())
					return tempFile;
			}
		}
	}
	return null;
}

Scrivi String dentro un File

Scrive una String come contenuto all’interno di un file specificato

public static void writeToFile(String content, File outFile) {
	try {
		// Creazione file
		FileWriter fstream = new FileWriter( outFile );
		BufferedWriter out = new BufferedWriter(fstream);
		out.write( content );
		// Chiusura output stream
		out.close();
	} catch (Exception e) {
		// Catch exception se si verifica
		System.err.println("Error: " + e.getMessage());
	}

}

Lettura String da File, tramite Filesystem

Carica il contenuto testuale di un file partendo dal percorso sul filesystem. Il metodo rilancia eventuali eccezioni

public static String tryReadFromFile(String filepath) throws Exception {
	// leggo risorsa da stream
	InputStream inStream = new FileInputStream(filepath);
	byte[] content = new byte[inStream.available()];
	inStream.read(content);
	inStream.close();
	// l'array di byte diventa stringa
	return new String(content);
}

Lettura String da File, tramite Classpath

Carica il contenuto testuale di un file partendo dal percorso sul classpath. Il metodo rilancia eventuali eccezioni

public static String tryReadFromResource(String classpath)
		throws Exception {
	// leggo risorsa da stream
	InputStream inStream = CLASSLOADER.getResourceAsStream(classpath);
	byte[] content = new byte[inStream.available()];
	inStream.read(content);
	inStream.close();
	// l'array di byte diventa stringa
	return new String(content);
}

Lettura String da File, tramite URL

Preleva il contenuto testuale di una risorsa cui si accede tramite un URL fornito come parametro. Il metodo rilancia eventuali eccezioni

public static String tryReadFromURL(String urlString) throws Exception {
	// lettura risorsa
	URL url = new URL(urlString);
	InputStream inStream = url.openStream();
	byte[] content = new byte[inStream.available()];
	inStream.read(content);
	inStream.close();
	// l'array di byte diventa stringa
	return new String(content);
}

.