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