Getting User Input and Displaying Output in Dart: A Guide to Stdin and Stdout

Gustavo Zeloni
2 min readApr 26, 2023

As a Dart developer, you may need to prompt users for input and display output to them during runtime. The dart:io library provides two classes, Stdin and Stdout, that allow you to do just that. In this article, we'll explore how to use these classes to get user input and display output in your Dart applications.

Getting User Input Using the Stdin Class

The Stdin class provides methods for reading user input from the console. You can create an instance of the Stdin class by calling the stdin getter of the dart:io library:

import 'dart:io';

void main() {
var input = stdin.readLineSync();
print('You entered: $input');
}

In this example, we’re using the readLineSync() method of the Stdin class to read a line of user input from the console. The input is then stored in the input variable, which is used to display a message to the user using the print() function.

Displaying Output Using the Stdout Class

The Stdout class provides methods for displaying output to the user. You can create an instance of the Stdout class by calling the stdout getter of the dart:io library:

import 'dart:io';

void main() {
stdout.write('Enter your name: ');
var name = stdin.readLineSync();
stdout.write('Enter your age: ');
var age = stdin.readLineSync();

print('Hello, $name! You are $age years old.');
}

In this example, we’re using the write() method of the Stdout class to display a message to the user asking them to enter their name and age. We then use the readLineSync() method of the Stdin class to read the user's input, which is stored in the name and age variables. Finally, we use the print() function to display a message to the user using the values entered.

Conclusion

In this article, we’ve explored how to use the Stdin and Stdout classes to get user input and display output in your Dart applications. These classes provide a simple way to interact with the user during runtime, and can be used in a variety of applications.

I hope you found this article helpful! If you have any questions or feedback, feel free to leave a comment below.

--

--