Ce face stdout.write
stdout.write(x) transformă valoarea în text (cu toString()) și o scrie fără să treacă pe rândul următor. Următoarea scriere continuă pe același rând. Este potrivit pentru întrebări urmate de răspuns, bare de progres sau pentru a construi un rând din mai multe bucăți.
stdout.writeln(x) scrie valoarea și apoi un rând nou; fără argument scrie doar rândul nou. Rezultatul este același ca la print(x).
Ambele sunt metode moștenite de la IOSink, deci funcționează la fel pentru stderr și pentru fișierele deschise cu openWrite.
Parametri
| Parametru | Descriere |
|---|---|
object |
Valoarea de scris; orice obiect, convertit cu toString(). |
Exemple
Exemplul 1: Un rând construit din bucăți
import 'dart:io';
void main() {
final orase = ['Iași', 'Cluj', 'Timișoara'];
stdout.write('Orașe: ');
for (var i = 0; i < orase.length; i++) {
stdout.write(orase[i]);
if (i < orase.length - 1) stdout.write(' -> ');
}
stdout.writeln();
stdout.writeln('Total: ${orase.length}');
}
Rezultat
Orașe: Iași -> Cluj -> Timișoara
Total: 3
Exemplul 2: Întrebare pe același rând cu răspunsul
În terminal, utilizatorul scrie după Suma în lei: . Pe site, textul vine ca intrare, deci rezultatul continuă direct pe același rând.
import 'dart:io';
void main() {
stdout.write('Suma în lei: ');
final lei = double.parse(stdin.readLineSync() ?? '0');
stdout.writeln('= ${(lei / 4.97).toStringAsFixed(2)} euro');
}
Ce scrie utilizatorul (intrare)
250
Rezultat
Suma în lei: = 50.30 euro
Exemplul 3: Bară de progres
import 'dart:io';
void main() {
const total = 10;
for (var pas = 1; pas <= total; pas++) {
stdout.write('#');
}
stdout.writeln(' 100%');
stdout.writeln('Descărcare terminată.');
}
Rezultat
########## 100%
Descărcare terminată.
Greșeli frecvente
- Folosești
printpentru o întrebare: cursorul trece pe rândul următor și răspunsul apare sub întrebare, nu lângă ea. - Uiți
writeln()după ultimulwrite: promptul terminalului apare lipit de textul tău.
Comenzi înrudite
stdout: stdout este ieșirea standard a programului: tot ce apare în terminal; are metodele unui IOSink (write, writeln, writeAll).stdin.readLineSync: Citește un rând de la tastatură (intrarea standard) și îl returnează fără Enter; returnează null la sfârșitul intrării.IOSink: Destinația în care scrii text sau octeți: un fișier deschis (openWrite), stdout, stderr sau răspunsul HTTP.stderr: stderr este ieșirea de erori a programului, separată de stdout; aici scrii avertismentele și mesajele de eroare.