في علم الحاسوب يستخدم لفظ تيار بيانات أو تدفق البيانات (Data stream) للتعبير عن بيانات متتالية لا يمكن التنبؤ بنهايتها. أي أنها كتيار الماء مستمرة في التدفق. ويمكن هذا النظام البرنامج بأن يقوم بالتعامل مع البيانات أولا بأول دون حاجة لوجود المحتوى كله في الذاكرة.
من الإستخدامات المهمة لتيارات البيانات تبادل المعلومات بين البرامج المختلفة (IPC) سواء على نفس الجهاز (مثلا عن طريق جعبة pipe) أو عبر الشبكة (عن طريق مقبس مثلا).
التيارات القياسية
التيارات القياسية هي ثلاث تيارات بيانات في نظام اليونكس والأنظمة المتقاربة معه وكذلك في لغة البرمجة سي. يتم توفير هذه التيارات من قبل نظام التشغيل لكل البرامج وتستخدم في الإدخال والإخراج:
- الإدخال القياسي (stdin): يمكن إدخال بيانات إلى البرنامج عن طريقها. غالبا مايتم الإدخال في شاشة طرفية (Console/Terminal) عن طريق لوحة مفاتيح.
- الإخراج القياسي (stdout): يستخدم لطباعة المعلومات من داخل برنامج. عادة تكون متصلة بشاشة طرفية. هذا التيار ذو ذاكرة وسيطة (buffered) أي أنه يتم جمع مقدار من المعلومات قبيل الطباعة.
- الإخراج القياسي للأخطاء (stderr): هذا التيار شبيه بالإخراج القياسي ولكنه مخصص لاعطاء البرامج وسيلة لكتابة الاخطارات والاشعارت. العبرة في وجود تيارين للإخراج هو إمكانية تحويل مسارهما كل على حدة. هذا التيار unbuffered.
تضيف لغة C++ تيارا رابعا بجانب (std::cin و std::cout و std::cerr) وهو std::clog وهو نفس تيار std::cerr ولكن buffered.