Ah quando la documentazione non riesce, decompilare. Lo dimentico sempre!
Bene, non farlo. Non è più necessario, puoi guardare il vero codice sorgente che i programmatori Microsoft hanno scritto. Sempre meglio del codice decompilato, ha dei commenti.
Visita il sito Web Reference Source. È stato aggiornato circa un anno fa, ora ha un'interfaccia browser molto più veloce di un decompilatore. Basta digitare StreamWriter nella casella di ricerca. Ti porta al massimo una dozzina di secondi a scoprire:
// For UTF-8, the values of 1K for the default buffer size and 4K for the
// file stream buffer size are reasonable & give very reasonable
// performance for in terms of construction time for the StreamWriter and
// write perf. Note that for UTF-8, we end up allocating a 4K byte buffer,
// which means we take advantage of adaptive buffering code.
// The performance using UnicodeEncoding is acceptable.
internal const int DefaultBufferSize = 1024; // char[]
private const int DefaultFileStreamBufferSize = 4096;
Quindi il valore predefinito è 1024 caratteri per StreamWriter. E se scrivi su un file invece di uno stream, c'è un FileStream con un buffer da 4096 byte, non puoi cambiarlo. Esce un classico problema con i commenti, hanno un talento per non essere mantenuti e mismatch il codice. Il noodling sul "buffering adattivo" non è in realtà implementato. Un KiB è un animale con 1024 dita dei piedi, mai 1000.
fonte
2015-04-02 13:04:24
[questo post] (http://stackoverflow.com/questions/5670873/streamwriter-automatically-flushing-buffer-when-given-large-messages) suggerisce che la dimensione del buffer predefinita è 1024 byte. – dotNET
Ah quando la documentazione fallisce, decompila. Lo dimentico sempre! Grazie :) –
[Eccolo] (http://referencesource.microsoft.com/#mscorlib/system/io/streamwriter.cs,62bd8ad495f57b21,referenze) –