สตรีมอินพุตไฟล์ Java ใน Ubuntu 20.04

Stri Mxi Nphut Fil Java Ni Ubuntu 20 04



“ในบทความนี้ เราจะพูดถึงวิธีต่างๆ ในการอ่านข้อมูลจากไฟล์ไปยังอาร์เรย์ไบต์โดยใช้คลาส Java Input Stream คลาสนี้แสดงถึงสตรีมที่เรียงลำดับของไบต์จากไฟล์ มีฟังก์ชันหลายอย่างในคลาส Java Input Stream ที่ใช้กันทั่วไป และจะกล่าวถึงในบทความนี้ เช่น เมธอด read(), available(), skip() และ close() วิธีการเหล่านี้ใช้เพื่ออ่านไฟล์ที่มีนามสกุลต่างกัน เช่น ไฟล์ bin หรือ txt และสามารถแก้ไขเพื่อรับข้อมูลจากจุดใดก็ได้ในไฟล์ เราจะนำวิธีการเหล่านี้ไปใช้ในสภาพแวดล้อม Ubuntu 20.04 ในบทความนี้

มีวิธีการอีกมากมายของคลาส File Input Stream ซึ่งมีประโยชน์มากในการรับข้อมูลจากไฟล์ บางตัวเป็นแบบ int read(byte[] b) ฟังก์ชันนี้อ่านข้อมูลจากสตรีมอินพุตสูงสุด b.length ไบต์ในความยาว File Channel ได้รับช่อง (): วัตถุ File Channel เฉพาะที่เชื่อมต่อกับสตรีมอินพุตไฟล์จะถูกส่งคืนโดยใช้ Finalize() ใช้เพื่อให้แน่ใจว่าฟังก์ชัน close() ถูกเรียกใช้เมื่อไม่มีการอ้างอิงถึงสตรีมอินพุตไฟล์อีกต่อไป”

ตัวอย่าง 01: การอ่านไบต์เดียวจากไฟล์ข้อความโดยใช้เมธอด read() และ close() ของคลาสสตรีมอินพุต

ตัวอย่างนี้ใช้ File Input Stream เพื่ออ่านอักขระตัวเดียวและพิมพ์เนื้อหา สมมติว่าเรามีไฟล์ชื่อ “file.txt” โดยมีเนื้อหาที่แสดงด้านล่าง:









สมมติว่าเรามีไฟล์ชื่อ 'file.txt' โดยมีเนื้อหาที่แสดงด้านบน ให้เราลองอ่านและพิมพ์อักขระตัวแรกของไฟล์







เราต้องนำเข้า java.io ก่อน แพ็คเกจ File Input Stream เพื่อสร้างสตรีมอินพุตไฟล์ จากนั้นเราจะสร้างวัตถุใหม่ของ File Input Stream ที่จะเชื่อมโยงกับไฟล์ที่ระบุ (file.txt) ในตัวแปร 'f'

ในตัวอย่างนี้ เราจะใช้เมธอด “int read()” ของคลาส Java File Input Stream ซึ่งใช้ในการอ่านไบต์เดียวจากไฟล์และบันทึกลงในตัวแปร “I” ถัดไป “System.out.print(char(i))” จะแสดงอักขระที่สอดคล้องกับไบต์นั้น



f.close() วิธีปิดไฟล์และสตรีม เราจะได้ผลลัพธ์ต่อไปนี้หลังจากสร้างและรันสคริปต์ดังกล่าว เนื่องจากเราจะเห็นเฉพาะอักษรเริ่มต้นของข้อความ 'L' เท่านั้นที่พิมพ์

ตัวอย่าง 02: การอ่านเนื้อหาทั้งหมดของไฟล์ข้อความโดยใช้เมธอด read() และ close() ของคลาสสตรีมอินพุต

ในตัวอย่างนี้ เราจะอ่านและแสดงเนื้อหาทั้งหมดของไฟล์ข้อความ ดังที่แสดงด้านล่าง:

อีกครั้ง เราจะนำเข้า java.io แพ็คเกจ File Input Stream เพื่อสร้างสตรีมอินพุตไฟล์

ขั้นแรก เราจะอ่านไบต์แรกของไฟล์และแสดงอักขระที่เกี่ยวข้องภายในลูป while ลูป while จะทำงานจนกว่าจะไม่มีไบต์เหลือ นั่นคือ จุดสิ้นสุดของข้อความในไฟล์ บรรทัดที่ 12 จะอ่านไบต์ถัดไป และการวนซ้ำจะดำเนินต่อไปจนถึงไบต์สุดท้ายของไฟล์

หลังจากคอมไพล์และรันโค้ดด้านบนแล้ว เราจะได้ผลลัพธ์ดังนี้ อย่างที่เราเห็น ข้อความทั้งหมดของไฟล์ 'Lorep Ipsum' จะแสดงในเทอร์มินัล

ตัวอย่าง 03: การกำหนดจำนวนไบต์ที่มีอยู่ในไฟล์ข้อความโดยใช้วิธีการที่มีอยู่ () ของคลาสสตรีมอินพุต

ในตัวอย่างนี้ เราจะใช้ฟังก์ชัน “available()” ของ File Input Stream เพื่อกำหนดจำนวนไบต์ที่มีอยู่ในสตรีมอินพุตไฟล์

ขั้นแรก เราสร้างอ็อบเจ็กต์ของคลาสสตรีมอินพุตไฟล์ชื่อ “a” ด้วยรหัสต่อไปนี้ ในบรรทัดที่ 5 เราใช้เมธอด “available()” เพื่อกำหนดและแสดงจำนวนไบต์ทั้งหมดที่มีอยู่ในไฟล์ จากบรรทัดที่ 6 ถึงบรรทัดที่ 8 เราใช้ฟังก์ชัน 'read()' สามครั้ง ในบรรทัดที่ 9 เราใช้วิธี “available()” อีกครั้งเพื่อตรวจสอบและแสดงไบต์ที่เหลือ

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

ตัวอย่างที่ 04: การข้ามไบต์ของไฟล์ข้อความเพื่ออ่านข้อมูลจากจุดที่ระบุโดยใช้วิธีการ skip() ของคลาสสตรีมอินพุต

ในตัวอย่างนี้ เราจะใช้เมธอด “skip(x)” ของ File Input Stream ซึ่งใช้เพื่อละเว้นและละเว้นจำนวนไบต์ของข้อมูลที่ระบุจากสตรีมอินพุต

ในโค้ดด้านล่าง ขั้นแรก เราได้สร้างสตรีมอินพุตไฟล์และจัดเก็บไว้ในตัวแปร 'a' ต่อไป เราได้ใช้วิธี “a.skip(5)” ซึ่งจะข้าม 5 ไบต์แรกของไฟล์ ต่อไป เราพิมพ์อักขระที่เหลือของไฟล์โดยใช้เมธอด “read()” ภายในลูป while สุดท้าย เราปิดสตรีมอินพุตไฟล์โดยวิธี 'close()'

ด้านล่างนี้เป็นภาพหน้าจอของเทอร์มินัลหลังจากรวบรวมและรันโค้ด ดังที่เราเห็น มีเพียง “Ipsum” เท่านั้นที่จะแสดงเมื่อเราข้าม 5 ไบต์แรกโดยใช้วิธี “skip()”

บทสรุป

ในบทความนี้ เราได้กล่าวถึงการใช้คลาส File Input Stream และวิธีการต่างๆ อ่าน () พร้อมใช้งาน () ข้าม () และปิด () เราใช้วิธีการเหล่านี้เพื่ออ่านองค์ประกอบแรกของไฟล์โดยใช้เมธอด read() และ close() จากนั้นเราอ่านไฟล์ทั้งหมดด้วยวิธีวนซ้ำและใช้วิธีการเดียวกัน จากนั้นเราใช้วิธีการ available() เพื่อกำหนดจำนวนไบต์ที่มีอยู่ในตอนเริ่มต้นและความสมบูรณ์ของไฟล์ หลังจากนั้น เราใช้เมธอด skip() เพื่อข้ามหลายไบต์ก่อนอ่านไฟล์ ซึ่งทำให้เราได้รับข้อมูลเฉพาะที่เราต้องการ