F # - I / O พื้นฐาน

อินพุตเอาต์พุตพื้นฐานประกอบด้วย -

  • การอ่านและเขียนลงในคอนโซล
  • การอ่านและเขียนลงในไฟล์

โมดูล Core.Printf

เราใช้ฟังก์ชัน printfและprintfnเพื่อเขียนลงในคอนโซล ในส่วนนี้เราจะดูรายละเอียดของไฟล์Printf โมดูลของ F #

นอกเหนือจากฟังก์ชันข้างต้นแล้วโมดูลCore.Printfของ F # ยังมีวิธีการอื่น ๆ อีกมากมายสำหรับการพิมพ์และการจัดรูปแบบโดยใช้เครื่องหมาย% เป็นตัวยึดตำแหน่ง ตารางต่อไปนี้แสดงวิธีการพร้อมคำอธิบายสั้น ๆ -

ค่า คำอธิบาย
bprintf: StringBuilder → BuilderFormat <'T> →' T พิมพ์ไปยัง StringBuilder
eprintf: TextWriterFormat <'T> →' T พิมพ์เอาต์พุตที่จัดรูปแบบไปยัง stderr
eprintfn: TextWriterFormat <'T> →' T พิมพ์เอาต์พุตที่จัดรูปแบบไปยัง stderr เพิ่มบรรทัดใหม่
failwithf: StringFormat <'T,' Result> → 'T พิมพ์ไปยังสตริงบัฟเฟอร์และทำให้เกิดข้อยกเว้นกับผลลัพธ์ที่กำหนด
fprintf: TextWriter → TextWriterFormat <'T> →' T พิมพ์ไปยังเครื่องเขียนข้อความ
fprintfn: TextWriter → TextWriterFormat <'T> →' T พิมพ์ไปยังตัวเขียนข้อความเพิ่มบรรทัดใหม่
kbprintf: (หน่วย→ 'ผลลัพธ์) → StringBuilder → BuilderFormat <' T, 'ผลลัพธ์> →' T เช่นเดียวกับ bprintf แต่เรียกใช้ฟังก์ชันที่ระบุเพื่อสร้างผลลัพธ์
kfprintf: (หน่วย→ 'ผลลัพธ์) → TextWriter → TextWriterFormat <' T, 'ผลลัพธ์> →' T เช่นเดียวกับ fprintf แต่เรียกใช้ฟังก์ชันที่ระบุเพื่อสร้างผลลัพธ์
kprintf: (สตริง→ 'ผลลัพธ์) → StringFormat <' T, 'ผลลัพธ์> →' T เช่นเดียวกับ printf แต่เรียกใช้ฟังก์ชันที่ระบุเพื่อสร้างผลลัพธ์ ตัวอย่างเช่นสิ่งเหล่านี้ปล่อยให้การพิมพ์เกิดการฟลัชหลังจากป้อนเอาต์พุตทั้งหมดลงในช่องสัญญาณ แต่ไม่เกิดขึ้นก่อนหน้านี้
ksprintf: (สตริง→ 'ผลลัพธ์) → StringFormat <' T, 'ผลลัพธ์> →' T เช่นเดียวกับ sprintf แต่เรียกใช้ฟังก์ชันที่ระบุเพื่อสร้างผลลัพธ์
printf: TextWriterFormat <'T> →' T พิมพ์เอาต์พุตที่จัดรูปแบบเป็น stdout
printfn: TextWriterFormat <'T> →' T พิมพ์เอาต์พุตที่จัดรูปแบบเป็น stdout เพิ่มขึ้นบรรทัดใหม่
sprintf: StringFormat <'T> →' T พิมพ์เป็นสตริงโดยใช้บัฟเฟอร์สตริงภายในและส่งคืนผลลัพธ์เป็นสตริง

ข้อกำหนดรูปแบบ

ข้อกำหนดรูปแบบใช้สำหรับการจัดรูปแบบอินพุตหรือเอาต์พุตตามความต้องการของโปรแกรมเมอร์

นี่คือสตริงที่มีเครื่องหมาย% ระบุตัวยึดรูปแบบ

ไวยากรณ์ของตัวยึดรูปแบบคือ -

%[flags][width][.precision][type]

type ถูกตีความว่า -

ประเภท คำอธิบาย
% ข รูปแบบไฟล์ bool, จัดรูปแบบเป็น true หรือ false.
%ค จัดรูปแบบอักขระ
% s รูปแบบไฟล์ string, จัดรูปแบบเป็นเนื้อหาโดยไม่ต้องตีความอักขระหลีกใด ๆ
% d,% i จัดรูปแบบประเภทจำนวนเต็มพื้นฐานใด ๆ ที่จัดรูปแบบเป็นจำนวนเต็มทศนิยมลงนามหากมีการลงนามประเภทจำนวนเต็มพื้นฐาน
%ยู จัดรูปแบบประเภทจำนวนเต็มพื้นฐานที่จัดรูปแบบเป็นจำนวนเต็มทศนิยมที่ไม่ได้ลงชื่อ
% x จัดรูปแบบประเภทจำนวนเต็มพื้นฐานที่จัดรูปแบบเป็นจำนวนเต็มฐานสิบหกที่ไม่ได้ลงชื่อโดยใช้ตัวพิมพ์เล็ก a ถึง f
% X จัดรูปแบบประเภทจำนวนเต็มพื้นฐานใด ๆ ที่จัดรูปแบบเป็นจำนวนเต็มฐานสิบหกที่ไม่ได้ลงชื่อโดยใช้อักษรตัวพิมพ์ใหญ่ A ถึง F
% o จัดรูปแบบประเภทจำนวนเต็มพื้นฐานที่จัดรูปแบบเป็นจำนวนเต็มฐานแปดที่ไม่ได้ลงนาม
% e,% E,% f,% F,% g,% G จัดรูปแบบประเภทจุดลอยตัวพื้นฐาน (float, float32) จัดรูปแบบโดยใช้ข้อกำหนดรูปแบบจุดลอยตัวสไตล์ C
% e,% E จัดรูปแบบค่าที่ลงนามโดยมีรูปแบบ [-] d.dddde [sign] ddd โดยที่ d เป็นเลขฐานสิบเดียว dddd คือตัวเลขทศนิยมหนึ่งหลักขึ้นไป ddd คือทศนิยมสามหลักและเครื่องหมายคือ + หรือ -
% ฉ จัดรูปแบบค่าที่ลงนามโดยมีรูปแบบ [-] dddd.dddd โดยที่ dddd เป็นตัวเลขทศนิยมหนึ่งหลักขึ้นไป จำนวนหลักก่อนจุดทศนิยมขึ้นอยู่กับขนาดของตัวเลขและจำนวนหลักหลังจุดทศนิยมขึ้นอยู่กับความแม่นยำที่ร้องขอ
% ก.% ก จัดรูปแบบค่าที่ลงนามที่พิมพ์ในรูปแบบ f หรือ e แล้วแต่ว่าค่าใดจะกะทัดรัดกว่าสำหรับค่าและความแม่นยำที่กำหนด
% ม จัดรูปแบบค่าทศนิยม
% O จัดรูปแบบค่าใด ๆ พิมพ์โดยการชกมวยวัตถุและใช้ ToString วิธี.
% ก% + ก จัดรูปแบบค่าใด ๆ พิมพ์ด้วยการตั้งค่าโครงร่างเริ่มต้น ใช้% + A เพื่อพิมพ์โครงสร้างของสหภาพแรงงานที่เลือกปฏิบัติด้วยการเป็นตัวแทนภายในและส่วนตัว
% ก

ตัวระบุรูปแบบทั่วไปต้องการสองอาร์กิวเมนต์ อาร์กิวเมนต์แรกคือฟังก์ชันที่ยอมรับสองอาร์กิวเมนต์: อันดับแรกพารามิเตอร์บริบทของชนิดที่เหมาะสมสำหรับฟังก์ชันการจัดรูปแบบที่กำหนด (ตัวอย่างเช่น TextWriter) และที่สองเป็นค่าที่จะพิมพ์และซึ่งส่งออกหรือส่งคืนข้อความที่เหมาะสม

อาร์กิวเมนต์ที่สองคือค่าเฉพาะที่จะพิมพ์

% t ตัวระบุรูปแบบทั่วไปต้องการหนึ่งอาร์กิวเมนต์: ฟังก์ชันที่ยอมรับพารามิเตอร์บริบทของชนิดที่เหมาะสมสำหรับฟังก์ชันการจัดรูปแบบที่กำหนด (aTextWriter) และซึ่งเอาต์พุตหรือส่งคืนข้อความที่เหมาะสม ประเภทจำนวนเต็มพื้นฐานคือbyte, sbyte, int16, uint16, int32, uint32, int64, uint64, nativeint, และ unativeint. ประเภทจุดลอยตัวพื้นฐานคือ float และ float32.

widthเป็นพารามิเตอร์ทางเลือก เป็นจำนวนเต็มที่ระบุความกว้างน้อยที่สุดของผลลัพธ์ ตัวอย่างเช่น% 5d พิมพ์จำนวนเต็มโดยมีช่องว่างอย่างน้อย 5 อักขระ

ถูกต้อง flags อธิบายไว้ในตารางต่อไปนี้ -

ค่า คำอธิบาย
0 ระบุเพื่อเพิ่มศูนย์แทนช่องว่างเพื่อสร้างความกว้างที่ต้องการ
- ระบุเพื่อจัดเรียงผลลัพธ์ให้ชิดซ้ายภายในความกว้างที่ระบุ
+ ระบุเพื่อเพิ่มอักขระ + หากตัวเลขเป็นค่าบวก (เพื่อให้ตรงกับเครื่องหมาย - สำหรับจำนวนลบ)
'' (ช่องว่าง) ระบุเพื่อเพิ่มช่องว่างหากตัวเลขเป็นค่าบวก (เพื่อให้ตรงกับเครื่องหมาย - สำหรับจำนวนลบ)
# ไม่ถูกต้อง

ตัวอย่าง

printf "Hello "
printf "World"
printfn ""
printfn "Hello "
printfn "World"
printf "Hi, I'm %s and I'm a %s" "Rohit" "Medical Student"

printfn "d: %f" 212.098f
printfn "e: %f" 504.768f

printfn "x: %g" 212.098f
printfn "y: %g" 504.768f

printfn "x: %e" 212.098f
printfn "y: %e" 504.768f
printfn "True: %b" true

เมื่อคุณคอมไพล์และรันโปรแกรมจะให้ผลลัพธ์ดังต่อไปนี้ -

Hello World
Hello
World
Hi, I'm Rohit and I'm a Medical Studentd: 212.098000
e: 504.768000
x: 212.098
y: 504.768
x: 2.120980e+002
y: 5.047680e+002
True: true

คลาสคอนโซล

คลาสนี้เป็นส่วนหนึ่งของ. NET framework แสดงถึงอินพุตเอาต์พุตและสตรีมข้อผิดพลาดมาตรฐานสำหรับแอปพลิเคชันคอนโซล

มีวิธีการต่างๆในการอ่านและเขียนลงในคอนโซล ตารางต่อไปนี้แสดงวิธีการ -

วิธี คำอธิบาย
บี๊บ () เล่นเสียงบี๊บผ่านลำโพงคอนโซล
บี๊บ (Int32, Int32) เล่นเสียงบี๊บของความถี่และระยะเวลาที่กำหนดผ่านลำโพงคอนโซล
ชัดเจน ล้างบัฟเฟอร์คอนโซลและหน้าต่างคอนโซลที่เกี่ยวข้องของข้อมูลการแสดงผล
MoveBufferArea (Int32, Int32, Int32, Int32, Int32, Int32) คัดลอกพื้นที่ต้นทางที่ระบุของบัฟเฟอร์หน้าจอไปยังพื้นที่ปลายทางที่ระบุ
MoveBufferArea (Int32, Int32, Int32, Int32, Int32, Int32, Char, ConsoleColor, ConsoleColor) คัดลอกพื้นที่ต้นทางที่ระบุของบัฟเฟอร์หน้าจอไปยังพื้นที่ปลายทางที่ระบุ
OpenStandardError () รับสตรีมข้อผิดพลาดมาตรฐาน
OpenStandardError (Int32) รับสตรีมข้อผิดพลาดมาตรฐานซึ่งกำหนดเป็นขนาดบัฟเฟอร์ที่ระบุ
OpenStandardInput () รับสตรีมอินพุตมาตรฐาน
OpenStandardInput (Int32) รับสตรีมอินพุตมาตรฐานซึ่งกำหนดเป็นขนาดบัฟเฟอร์ที่ระบุ
OpenStandardOutput () รับสตรีมเอาต์พุตมาตรฐาน
OpenStandardOutput (Int32) รับสตรีมเอาต์พุตมาตรฐานซึ่งกำหนดเป็นขนาดบัฟเฟอร์ที่ระบุ
อ่าน อ่านอักขระถัดไปจากสตรีมอินพุตมาตรฐาน
ReadKey () รับอักขระถัดไปหรือปุ่มฟังก์ชันที่ผู้ใช้กด ปุ่มกดจะปรากฏในหน้าต่างคอนโซล
ReadKey (บูลีน) รับอักขระถัดไปหรือปุ่มฟังก์ชันที่ผู้ใช้กด ปุ่มกดจะแสดงเป็นทางเลือกในหน้าต่างคอนโซล
ReadLine อ่านบรรทัดถัดไปของอักขระจากสตรีมอินพุตมาตรฐาน
รีเซ็ตสี ตั้งค่าสีคอนโซลเบื้องหน้าและพื้นหลังเป็นค่าเริ่มต้น
SetBufferSize ตั้งค่าความสูงและความกว้างของพื้นที่บัฟเฟอร์หน้าจอเป็นค่าที่ระบุ
SetCursorPosition ตั้งค่าตำแหน่งของเคอร์เซอร์
SetError ตั้งค่าคุณสมบัติข้อผิดพลาดเป็นวัตถุTextWriter ที่ระบุ
ที่ตั้งอยู่ใน ตั้งค่าคุณสมบัติ In เป็นอ็อบเจ็กต์TextReader ที่ระบุ
SetOut ตั้งค่าคุณสมบัติ Out เป็นอ็อบเจ็กต์TextWriter ที่ระบุ
SetWindowPosition ตั้งค่าตำแหน่งของหน้าต่างคอนโซลที่สัมพันธ์กับบัฟเฟอร์หน้าจอ
SetWindowSize ตั้งค่าความสูงและความกว้างของหน้าต่างคอนโซลเป็นค่าที่ระบุ
เขียน (บูลีน) เขียนการแสดงข้อความของค่าบูลีนที่ระบุไปยังสตรีมเอาต์พุตมาตรฐาน
เขียน (Char) เขียนค่าอักขระ Unicode ที่ระบุไปยังสตรีมเอาต์พุตมาตรฐาน
เขียน (Char []) เขียนอาร์เรย์ของอักขระ Unicode ที่ระบุไปยังสตรีมเอาต์พุตมาตรฐาน
เขียน (ทศนิยม) เขียนการแสดงข้อความของค่าทศนิยมที่ระบุไปยังสตรีมเอาต์พุตมาตรฐาน
เขียน (คู่) เขียนการแสดงข้อความของค่าทศนิยมที่มีความแม่นยำสองเท่าที่ระบุไปยังสตรีมเอาต์พุตมาตรฐาน
เขียน (Int32) เขียนการแสดงข้อความของค่าจำนวนเต็มลายเซ็น 32 บิตที่ระบุไปยังสตรีมเอาต์พุตมาตรฐาน
เขียน (Int64) เขียนการแสดงข้อความของค่าจำนวนเต็มลายเซ็น 64 บิตที่ระบุไปยังสตรีมเอาต์พุตมาตรฐาน
เขียน (วัตถุ) เขียนการแสดงข้อความของอ็อบเจ็กต์ที่ระบุไปยังสตรีมเอาต์พุตมาตรฐาน
เขียน (เดี่ยว) เขียนการแสดงข้อความของค่าทศนิยมความแม่นยำเดียวที่ระบุไปยังสตรีมเอาต์พุตมาตรฐาน
เขียน (สตริง) เขียนค่าสตริงที่ระบุไปยังสตรีมเอาต์พุตมาตรฐาน
เขียน (UInt32) เขียนการแสดงข้อความของค่าจำนวนเต็ม 32 บิตที่ไม่ได้ลงชื่อไปยังสตรีมเอาต์พุตมาตรฐาน
เขียน (UInt64) เขียนการแสดงข้อความของค่าจำนวนเต็ม 64 บิตที่ไม่ได้ลงชื่อที่ระบุไปยังสตรีมเอาต์พุตมาตรฐาน
เขียน (String, Object) เขียนการแสดงข้อความของอ็อบเจ็กต์ที่ระบุไปยังสตรีมเอาต์พุตมาตรฐานโดยใช้ข้อมูลรูปแบบที่ระบุ
เขียน (String, Object []) เขียนการแสดงข้อความของอาร์เรย์ของอ็อบเจ็กต์ที่ระบุไปยังสตรีมเอาต์พุตมาตรฐานโดยใช้ข้อมูลรูปแบบที่ระบุ
เขียน (Char [], Int32, Int32) เขียนซับเรย์ที่ระบุของอักขระ Unicode ไปยังสตรีมเอาต์พุตมาตรฐาน
เขียน (String, Object, Object) เขียนการแสดงข้อความของอ็อบเจ็กต์ที่ระบุไปยังสตรีมเอาต์พุตมาตรฐานโดยใช้ข้อมูลรูปแบบที่ระบุ
เขียน (String, Object, Object, Object) เขียนการแสดงข้อความของอ็อบเจ็กต์ที่ระบุไปยังสตรีมเอาต์พุตมาตรฐานโดยใช้ข้อมูลรูปแบบที่ระบุ
เขียน (String, Object, Object, Object, Object) เขียนการแสดงข้อความของอ็อบเจ็กต์ที่ระบุและรายการพารามิเตอร์ความยาวตัวแปรไปยังสตรีมเอาต์พุตมาตรฐานโดยใช้ข้อมูลรูปแบบที่ระบุ
เขียนบรรทัด () เขียนเทอร์มิเนเตอร์บรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐาน
WriteLine (บูลีน) เขียนการแสดงข้อความของค่าบูลีนที่ระบุตามด้วยเทอร์มิเนเตอร์บรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐาน
WriteLine (ถ่าน) เขียนอักขระ Unicode ที่ระบุตามด้วยตัวยุติบรรทัดปัจจุบันค่าไปยังสตรีมเอาต์พุตมาตรฐาน
WriteLine (ถ่าน []) เขียนอาร์เรย์ของอักขระ Unicode ที่ระบุตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐาน
WriteLine (ทศนิยม) เขียนการแสดงข้อความของค่าทศนิยมที่ระบุตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐาน
WriteLine (คู่) เขียนการแสดงข้อความของค่าทศนิยมที่มีความแม่นยำสองเท่าที่ระบุตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐาน
เขียนไลน์ (Int32) เขียนการแสดงข้อความของค่าจำนวนเต็มลายเซ็น 32 บิตที่ระบุตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐาน
เขียนไลน์ (Int64) เขียนการแสดงข้อความของค่าจำนวนเต็มลายเซ็น 64 บิตที่ระบุตามด้วยเทอร์มิเนเตอร์บรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐาน
WriteLine (วัตถุ) เขียนการแสดงข้อความของอ็อบเจ็กต์ที่ระบุตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐาน
WriteLine (เดี่ยว) เขียนการแสดงข้อความของค่าทศนิยมตำแหน่งเดียวที่ระบุตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐาน
WriteLine (สตริง) เขียนค่าสตริงที่ระบุตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐาน
WriteLine (UInt32) เขียนการแสดงข้อความของค่าจำนวนเต็ม 32 บิตที่ไม่ได้ลงชื่อตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐาน
WriteLine (UInt64) เขียนการแสดงข้อความของค่าจำนวนเต็ม 64 บิตที่ไม่ได้ลงชื่อตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐาน
WriteLine (สตริง, วัตถุ) เขียนการแสดงข้อความของอ็อบเจ็กต์ที่ระบุตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐานโดยใช้ข้อมูลรูปแบบที่ระบุ
WriteLine (สตริงวัตถุ []) เขียนการแสดงข้อความของอาร์เรย์ของอ็อบเจ็กต์ที่ระบุตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐานโดยใช้ข้อมูลรูปแบบที่ระบุ
WriteLine (ถ่าน [], Int32, Int32) เขียนซับเรย์ที่ระบุของอักขระ Unicode ตามด้วยเทอร์มิเนเตอร์บรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐาน
WriteLine (สตริงวัตถุวัตถุ) เขียนการแสดงข้อความของอ็อบเจ็กต์ที่ระบุตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐานโดยใช้ข้อมูลรูปแบบที่ระบุ
WriteLine (สตริง, วัตถุ, วัตถุ, วัตถุ) เขียนการแสดงข้อความของอ็อบเจ็กต์ที่ระบุตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐานโดยใช้ข้อมูลรูปแบบที่ระบุ
WriteLine (สตริง, วัตถุ, วัตถุ, วัตถุ, วัตถุ) เขียนการแสดงข้อความของอ็อบเจ็กต์ที่ระบุและรายการพารามิเตอร์ความยาวตัวแปรตามด้วยตัวยุติบรรทัดปัจจุบันไปยังสตรีมเอาต์พุตมาตรฐานโดยใช้ข้อมูลรูปแบบที่ระบุ

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงการอ่านจากคอนโซลและการเขียนลงในนั้น -

ตัวอย่าง

open System
let main() =
   Console.Write("What's your name? ")
   let name = Console.ReadLine()
   Console.Write("Hello, {0}\n", name)
   Console.WriteLine(System.String.Format("Big Greetings from {0} and {1}", "TutorialsPoint", "Absoulte Classes"))
   Console.WriteLine(System.String.Format("|{0:yyyy-MMM-dd}|", System.DateTime.Now))
main()

เมื่อคุณคอมไพล์และรันโปรแกรมจะให้ผลลัพธ์ดังต่อไปนี้ -

What's your name? Kabir
Hello, Kabir
Big Greetings from TutorialsPoint and Absoulte Classes
|2015-Jan-05|

เนมสเปซ System.IO

เนมสเปซ System.IO มีคลาสที่มีประโยชน์มากมายสำหรับการดำเนินการ I / O พื้นฐาน

ประกอบด้วยประเภทหรือคลาสที่อนุญาตให้อ่านและเขียนไปยังไฟล์สตรีมข้อมูลและประเภทที่ให้การสนับสนุนไฟล์และไดเร็กทอรีพื้นฐาน

คลาสที่มีประโยชน์สำหรับการทำงานกับระบบไฟล์ -

  • คลาส System.IO.File ใช้สำหรับสร้างต่อท้ายและลบไฟล์
  • คลาส System.IO.Directory ใช้สำหรับสร้างย้ายและลบไดเร็กทอรี
  • คลาส System.IO.Path ดำเนินการกับสตริงซึ่งแสดงถึงเส้นทางไฟล์
  • คลาส System.IO.FileSystemWatcher อนุญาตให้ผู้ใช้ฟังไดเร็กทอรีสำหรับการเปลี่ยนแปลง

คลาสที่มีประโยชน์สำหรับการทำงานกับสตรีม (ลำดับไบต์) -

  • คลาส System.IO.StreamReader ใช้เพื่ออ่านอักขระจากสตรีม
  • คลาส System.IO.StreamWriter ใช้ในการเขียนอักขระลงในสตรีม
  • คลาส System.IO.MemoryStream สร้างสตรีมไบต์ในหน่วยความจำ

ตารางต่อไปนี้แสดงคลาสทั้งหมดที่มีให้ในเนมสเปซพร้อมกับคำอธิบายสั้น ๆ -

คลาส คำอธิบาย
BinaryReader อ่านชนิดข้อมูลดั้งเดิมเป็นค่าไบนารีในการเข้ารหัสเฉพาะ
BinaryWriter เขียนประเภทดั้งเดิมในไบนารีไปยังสตรีมและสนับสนุนการเขียนสตริงในการเข้ารหัสเฉพาะ
บัฟเฟอร์สตรีม เพิ่มเลเยอร์บัฟเฟอร์เพื่ออ่านและเขียนการดำเนินการบนสตรีมอื่น
ไดเรกทอรี แสดงวิธีการคงที่สำหรับการสร้างย้ายและการแจกแจงผ่านไดเร็กทอรีและไดเร็กทอรีย่อย
DirectoryInfo แสดงวิธีการของอินสแตนซ์สำหรับการสร้างย้ายและระบุผ่านไดเร็กทอรีและไดเร็กทอรีย่อย
DirectoryNotFoundException ข้อยกเว้นที่เกิดขึ้นเมื่อไม่พบส่วนของไฟล์หรือไดเร็กทอรี
DriveInfo ให้การเข้าถึงข้อมูลบนไดรฟ์
DriveNotFoundException ข้อยกเว้นที่เกิดขึ้นเมื่อพยายามเข้าถึงไดรฟ์หรือแชร์ที่ไม่พร้อมใช้งาน
EndOfStreamException ข้อยกเว้นที่เกิดขึ้นเมื่อพยายามอ่านผ่านจุดสิ้นสุดของสตรีม
ErrorEventArgs จัดเตรียมข้อมูลสำหรับเหตุการณ์ FileSystemWatcher.Error
ไฟล์ จัดเตรียมวิธีการคงที่สำหรับการสร้างการคัดลอกการลบการย้ายและการเปิดไฟล์เดียวและช่วยในการสร้างอ็อบเจ็กต์ FileStream
FileFormatException ข้อยกเว้นที่เกิดขึ้นเมื่อไฟล์อินพุตหรือสตรีมข้อมูลที่ควรจะเป็นไปตามข้อกำหนดรูปแบบไฟล์บางอย่างผิดรูปแบบ
FileInfo จัดเตรียมคุณสมบัติและวิธีการอินสแตนซ์สำหรับการสร้างการคัดลอกการลบการย้ายและการเปิดไฟล์และช่วยในการสร้างอ็อบเจ็กต์ FileStream
FileLoadException ข้อยกเว้นที่เกิดขึ้นเมื่อพบแอสเซมบลีที่มีการจัดการ แต่ไม่สามารถโหลดได้
FileNotFoundException ข้อยกเว้นที่เกิดขึ้นเมื่อความพยายามในการเข้าถึงไฟล์ที่ไม่มีอยู่บนดิสก์ล้มเหลว
FileStream แสดงสตรีมรอบ ๆ ไฟล์ซึ่งสนับสนุนการดำเนินการอ่านและเขียนทั้งแบบซิงโครนัสและอะซิงโครนัส
FileSystemEventArgs จัดเตรียมข้อมูลสำหรับเหตุการณ์ในไดเร็กทอรี - เปลี่ยนแปลงสร้างลบ
FileSystemInfo จัดเตรียมคลาสพื้นฐานสำหรับอ็อบเจ็กต์ FileInfo และ DirectoryInfo
FileSystemWatcher รับฟังการแจ้งเตือนการเปลี่ยนแปลงระบบไฟล์และเพิ่มเหตุการณ์เมื่อไดเร็กทอรีหรือไฟล์ในไดเร็กทอรีเปลี่ยนแปลง
InternalBufferOverflowException เกิดข้อยกเว้นเมื่อบัฟเฟอร์ภายในล้น
InvalidDataException ข้อยกเว้นที่เกิดขึ้นเมื่อสตรีมข้อมูลอยู่ในรูปแบบที่ไม่ถูกต้อง
IODescriptionAttribute ตั้งค่าตัวออกแบบวิชวลคำอธิบายสามารถแสดงเมื่ออ้างถึงเหตุการณ์ส่วนขยายหรือคุณสมบัติ
IOException ข้อยกเว้นที่เกิดขึ้นเมื่อเกิดข้อผิดพลาด I / O
MemoryStream สร้างสตรีมที่มีที่เก็บสำรองเป็นหน่วยความจำ
เส้นทาง ดำเนินการกับอินสแตนซ์ String ที่มีข้อมูลไฟล์หรือไดเร็กทอรีพา ธ การดำเนินการเหล่านี้ดำเนินการในลักษณะข้ามแพลตฟอร์ม
PathTooLongException ข้อยกเว้นที่เกิดขึ้นเมื่อพา ธ หรือชื่อไฟล์ยาวเกินความยาวสูงสุดที่ระบบกำหนด
PipeException โยนเมื่อเกิดข้อผิดพลาดภายในไปป์ที่ระบุชื่อ
RenamedEventArgs ให้ข้อมูลสำหรับเหตุการณ์ที่เปลี่ยนชื่อ
กระแส ให้มุมมองทั่วไปของลำดับไบต์ นี่คือคลาสนามธรรม
StreamReader ใช้ TextReader ที่อ่านอักขระจากสตรีมไบต์ในการเข้ารหัสเฉพาะ
StreamWriter ใช้ TextWriter สำหรับการเขียนอักขระไปยังสตรีมในการเข้ารหัสเฉพาะ ในการเรียกดูซอร์สโค้ด. NET Framework สำหรับประเภทนี้โปรดดูที่แหล่งอ้างอิง
StringReader ใช้ TextReader ที่อ่านจากสตริง
StringWriter ใช้ TextWriter สำหรับการเขียนข้อมูลลงในสตริง ข้อมูลจะถูกเก็บไว้ใน StringBuilder
TextReader หมายถึงผู้อ่านที่สามารถอ่านชุดอักขระตามลำดับได้
TextWriter แสดงถึงผู้เขียนที่สามารถเขียนชุดอักขระตามลำดับได้ ชั้นนี้เป็นนามธรรม
UnmanagedMemoryAccessor ให้การเข้าถึงแบบสุ่มไปยังบล็อกหน่วยความจำที่ไม่มีการจัดการจากรหัสที่มีการจัดการ
UnmanagedMemoryStream ให้การเข้าถึงบล็อกหน่วยความจำที่ไม่มีการจัดการจากโค้ดที่มีการจัดการ
WindowsRuntimeStorageExtensions มีเมธอดส่วนขยายสำหรับอินเทอร์เฟซ IStorageFile และ IStorageFolder ใน Windows Runtime เมื่อพัฒนาแอป Windows Store
WindowsRuntimeStreamExtensions มีวิธีการส่วนขยายสำหรับการแปลงระหว่างสตรีมใน Windows Runtime และสตรีมที่มีการจัดการในแอป. NET สำหรับ Windows Store

ตัวอย่าง

ตัวอย่างต่อไปนี้สร้างไฟล์ชื่อ test.txt เขียนข้อความที่นั่นอ่านข้อความจากไฟล์และพิมพ์บนคอนโซล

Note - จำนวนรหัสที่ต้องใช้ในการทำสิ่งนี้น้อยลงอย่างน่าตกใจ!

open System.IO // Name spaces can be opened just as modules
File.WriteAllText("test.txt", "Hello There\n Welcome to:\n Tutorials Point")
let msg = File.ReadAllText("test.txt")
printfn "%s" msg

เมื่อคุณคอมไพล์และรันโปรแกรมจะให้ผลลัพธ์ดังต่อไปนี้ -

Hello There
Welcome to:
Tutorials Point