Ricerca…


Leggere un file di testo usando StreamReader

string fullOrRelativePath = "testfile.txt";

string fileData;

using (var reader = new StreamReader(fullOrRelativePath))
{
    fileData = reader.ReadToEnd();
}

Si noti che questo sovraccarico del costruttore StreamReader esegue alcuni rilevamenti di codifica automatica, che possono o meno essere conformi alla codifica effettiva utilizzata nel file.

Si noti che esistono alcuni metodi di comodità che leggono tutto il testo dai file disponibili nella classe System.IO.File , ovvero File.ReadAllText(path) e File.ReadAllLines(path) .

Lettura / Scrittura di dati mediante System.IO.File

Innanzitutto, vediamo tre diversi modi di estrarre i dati da un file.

string fileText = File.ReadAllText(file);
string[] fileLines = File.ReadAllLines(file);
byte[] fileBytes = File.ReadAllBytes(file);
  • Sulla prima riga, leggiamo tutti i dati nel file come una stringa.
  • Sulla seconda riga, leggiamo i dati nel file in un array di stringhe. Ogni riga nel file diventa un elemento nell'array.
  • Sul terzo leggiamo i byte dal file.

Successivamente, vediamo tre diversi metodi per aggiungere dati a un file. Se il file specificato non esiste, ciascun metodo creerà automaticamente il file prima di tentare di aggiungervi i dati.

 File.AppendAllText(file, "Here is some data that is\nappended to the file.");
 File.AppendAllLines(file, new string[2] { "Here is some data that is", "appended to the file." });
 using (StreamWriter stream = File.AppendText(file))
 {
     stream.WriteLine("Here is some data that is");
     stream.Write("appended to the file.");
 }
  • Sulla prima riga aggiungiamo semplicemente una stringa alla fine del file specificato.
  • Sulla seconda riga aggiungiamo ogni elemento della matrice su una nuova riga nel file.
  • Finalmente sulla terza riga usiamo File.AppendText per aprire uno streamwriter che aggiungerà qualsiasi dato vi sia scritto.

E infine, vediamo tre diversi metodi di scrittura dei dati in un file. La differenza tra l' aggiunta e la scrittura è che la scrittura sovrascrive i dati nel file mentre l'aggiunta aggiunge ai dati nel file. Se il file specificato non esiste, ciascun metodo creerà automaticamente il file prima di tentare di scrivere i dati su di esso.

File.WriteAllText(file, "here is some data\nin this file.");
File.WriteAllLines(file, new string[2] { "here is some data", "in this file" });
File.WriteAllBytes(file, new byte[2] { 0, 255 });
  • La prima riga scrive una stringa nel file.
  • La seconda riga scrive ogni stringa nell'array sulla propria riga nel file.
  • E la terza riga consente di scrivere un array di byte nel file.

Porte seriali che utilizzano System.IO.SerialPorts

Iterazione su porte seriali connesse

using System.IO.Ports;
string[] ports = SerialPort.GetPortNames();
for (int i = 0; i < ports.Length; i++)
{
    Console.WriteLine(ports[i]);
}

Istanziazione di un oggetto System.IO.SerialPort

using System.IO.Ports;
SerialPort port = new SerialPort();
SerialPort port = new SerialPort("COM 1"); ;
SerialPort port = new SerialPort("COM 1", 9600);

NOTA : Questi sono solo tre dei sette overload del costruttore per il tipo SerialPort.


Lettura / Scrittura di dati su SerialPort

Il modo più semplice è utilizzare i metodi SerialPort.Read e SerialPort.Write . Tuttavia, è anche possibile recuperare un oggetto System.IO.Stream che è possibile utilizzare per lo streaming di dati su SerialPort. Per fare ciò, utilizzare SerialPort.BaseStream .

Lettura

int length = port.BytesToRead;
//Note that you can swap out a byte-array for a char-array if you prefer.
byte[] buffer = new byte[length];
port.Read(buffer, 0, length);

Puoi anche leggere tutti i dati disponibili:

string curData = port.ReadExisting();

O semplicemente leggere la prima nuova riga incontrata nei dati in arrivo:

string line = port.ReadLine();

scrittura

Il modo più semplice per scrivere dati su SerialPort è:

port.Write("here is some text to be sent over the serial port.");

Tuttavia puoi anche inviare i dati in questo modo quando necessario:

//Note that you can swap out the byte-array with a char-array if you so choose.
byte[] data = new byte[1] { 255 };
port.Write(data, 0, data.Length);


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow