I/O di file (confronto tra C# e Java)
Aggiornamento: novembre 2007
Anche se i dettagli delle classi e le firme dei metodi possono variare, in C# e Java vengono utilizzati criteri analoghi per l'esecuzione di un'operazione di I/O di file. In entrambi i linguaggi è infatti presente il concetto di classe di file e di metodi associati per la lettura e la scrittura su file. Sono inoltre disponibili modelli DOM (Document Object Model) simili per la gestione del contenuto XML.
Esempio di operazioni su file Java
In Java è possibile utilizzare l'oggetto File per eseguire operazioni di I/O di file di base, quali la creazione, l'apertura, la chiusura, la lettura e la scrittura di un file. È possibile ad esempio utilizzare i metodi della classe File per eseguire operazioni di I/O di file, magari il metodo createNewFile o delete della classe File per creare o eliminare un file. È possibile utilizzare le classi BufferedReader e BufferedWriter per leggere e scrivere il contenuto dei file.
Nell'esempio di codice riportato di seguito viene illustrato come creare un nuovo file, eliminare un file, leggere il testo di un file e scrivere dati in un file.
// Java example code to create a new file
try
{
File file = new File("path and file_name");
boolean success = file.createNewFile();
}
catch (IOException e) { }
// Java example code to delete a file.
try
{
File file = new File("path and file_name");
boolean success = file.delete();
}
catch (IOException e) { }
// Java example code to read text from a file.
try
{
BufferedReader infile = new BufferedReader(new FileReader("path and file_name "));
String str;
while ((str = in.readLine()) != null)
{
process(str);
}
infile.close();
}
catch (IOException e)
{
// Exceptions ignored.
}
// Java example code to writing to a file.
try
{
BufferedWriter outfile =
new BufferedWriter(new FileWriter("path and file_name "));
outfile.write("a string");
outfile.close();
}
catch (IOException e) { }
Esempio di operazioni su file C#
In C#, per eseguire un'operazione di I/O di file, è possibile servirsi delle stesse nozioni ormai acquisite relative alla creazione, l'apertura, la chiusura, la lettura e la scrittura con classi e metodi equivalenti di .NET Framework. È possibile ad esempio utilizzare i metodi della classe File di .NET Framework per eseguire operazioni di I/O di file oppure utilizzare il metodo Exists per verificare l'esistenza di un file. È possibile utilizzare il metodo Create per creare un file, sovrascrivendone eventualmente uno esistente come illustrato nell'esempio di codice riportato di seguito, nonché effettuare operazioni di lettura e scrittura utilizzando la classe FileStream e l'oggetto BufferedStream.
Nell'esempio di codice riportato di seguito viene illustrato come eliminare un file, creare un file, scrivere dati in un file e leggere dati da un file.
// sample C# code for basic file I/O operations
// exceptions ignored for code simplicity
class TestFileIO
{
static void Main()
{
string fileName = "test.txt"; // a sample file name
// Delete the file if it exists.
if (System.IO.File.Exists(fileName))
{
System.IO.File.Delete(fileName);
}
// Create the file.
using (System.IO.FileStream fs = System.IO.File.Create(fileName, 1024))
{
// Add some information to the file.
byte[] info = new System.Text.UTF8Encoding(true).GetBytes("This is some text in the file.");
fs.Write(info, 0, info.Length);
}
// Open the file and read it back.
using (System.IO.StreamReader sr = System.IO.File.OpenText(fileName))
{
string s = "";
while ((s = sr.ReadLine()) != null)
{
System.Console.WriteLine(s);
}
}
}
}
Sezioni correlate
Tra le classi di .NET Framework utili per creare, leggere e scrivere nei flussi sono incluse le classi StreamReader e StreamWriter. Le seguenti sono atre classi di .NET Framework utili per gestire ed elaborare i file:
Classi FileAccess e FileAttribute.
Classi Directory, DirectoryInfo, Path, FileInfo e DriveInfo.
Classi BinaryReader e BinaryWriter.
Classi StringReader e StringWriter.
Classi TextReader e TextWriter.
Classe ToBase64Transform.
Classi FileStream, BufferedStream e MemoryStream.