Ở bài viết này,chúng ta sẽ cùng nhau tìm hiểu về 3 lệnh System.in, System.out, và System.error trong java.
System.in
System.in
là một InputStream
mà thường được kết nối với bàn phím đầu vào của chương trình điều khiển. System.in không được sử dụng thường xuyên vì dữ liệu được phổ biến thông qua một ứng dụng Java dòng lệnh thông qua các tham số dòng lệnh, hoặc các tập tin cấu hình. Trong các ứng dụng với giao diện đầu vào cho các ứng dụng được đưa ra thông qua giao diện đồ họa. Đây là một cơ chế đầu vào riêng biệt từ Java IO.
System.out
System.out
là một InputStream
. System.out
thường xuất ra dữ liệu bạn viết thư cho nó vào giao diện điều khiển. Điều này thường được sử dụng từ các chương trình điều khiển chỉ giống như các công cụ dòng lệnh. Đây cũng là thường được sử dụng để in báo cáo debug từ một chương trình (mặc dù nó có thể cho là không phải là cách tốt nhất để có được thông tin gỡ lỗi ra khỏi một chương trình).
System.err
System.err
là một InputStream
. System.err
hoạt động như thế System.out
, ngoại trừ đó là bình thường chỉ được sử dụng cho các văn bản lỗi đầu ra. Một số chương trình (như Eclipse) sẽ hiển thị đầu ra System.err
trong văn bản màu đỏ, để làm cho nó rõ ràng hơn rằng đó là văn bản lỗi.
Đơn giản System.out + System.err Ví dụ:
Dưới đây là một ví dụ đơn giản sử dụng System.out
và System.err
:
try { InputStream đầu vào = FileInputStream mới ( "c: \\ \\ dữ liệu ..."); System.out.println ( "File mở ra ..."); } Catch (IOException e) { System.err.println ( "File mở thất bại:"); e.printStackTrace (); }
Trao đổi hệ thống Streams
Thậm chí nếu 3 System
dòng là thành viên tĩnh của java.lang.System
lớp, và được khởi tạo trước tại JVM khởi động, bạn có thể thay đổi những gì suối để sử dụng cho mỗi trong số họ. Chỉ cần đặt mớiInputStream
cho System.in
hay mới OutputStream
cho System.out
hay System.err
, và tất cả các dữ liệu sẽ tiếp tục được đọc / ghi vào dòng mới.
Để thiết lập một mới System
dòng, sử dụng một trong emethods thứ System.setIn()
, System.setOut()
hoặcSystem.setErr()
. Đây là một ví dụ đơn giản:
OutputStream ra = FileOutputStream mới ( "c: \\ \\ dữ liệu system.out.txt"); PrintStream in = new PrintStream (đầu ra); System.setOut (bản in);
Bây giờ tất cả dữ liệu ghi vào System.out
sẽ được chuyển vào file “c: \\ \\ dữ liệu system.out.txt”. Hãy nhớ rằng, bạn nên chắc chắn để tuôn ra System.out
và đóng tập tin trước khi JVM tắt, phải chắc chắn rằng tất cả các dữ liệu được viết để System.out
được thực sự đỏ mặt vào các tập tin.