ฉันจำได้ว่าเมื่อฉันเริ่มเรียนรู้ Java ครั้งแรกฉันไม่เข้าใจการสตรีม Java Io ดังนั้นฉันจึงเขียนบทความนี้และหวังว่ามันจะเป็นประโยชน์กับผู้ที่เพิ่งเริ่มเรียนรู้ Java และอำนวยความสะดวกในการค้นหาในอนาคต สตรีม Java IO แบ่งออกเป็นสตรีมอักขระ (เครื่องอ่าน, นักเขียน) และสตรีมไบต์ (อินพุตสตรีม, outputstream) สตรีมไบต์ตามชื่อแนะนำว่าสตรีมไบต์จะอ่านเนื้อหาของไฟล์ลงในอาร์เรย์ไบต์แล้วส่งออกไปยังไฟล์อื่น หน่วยที่เล็กที่สุดของการดำเนินการสตรีมการสตรีมตัวละครคือตัวละคร มาดูภาพรวมของสตรีม IO กันเถอะ:
ต่อไปนี้เป็นสิ่งแรกที่อ่านและเขียนไฟล์ผ่านสตรีมอักขระ:
Package lib; นำเข้า java.io.bufferedreader; นำเข้า java.io.file; นำเข้า java.io.filenotfoundexception; นำเข้า java.io.fileereader; นำเข้า Java.io.filewriter; นำเข้า java.io.ioException; ไฟล์ ("f: //test.txt"); // วิธีการเขียนสตรีมอักขระสตริงสาธารณะ writeInfile () พ่น IOException {string str = ""; จำนวนสตริง = ""; ลอง {// ใช้สตรีมอักขระเพื่ออ่านไฟล์ bufferedReader bf = bufferedReader ใหม่ (ใหม่ filereader (f)); ในขณะที่ (จริง) {// อ่านแต่ละบรรทัดของข้อมูลและกำหนดให้กับ str ถ้า ((count = bf.readline ())! = null) {str += นับ; } else {break; }} // ปิดสตรีม bf.close (); } catch (filenotfoundException e) {e.printStackTrace (); } return str; } // วิธีการสำหรับสตรีมอักขระการอ่านโมฆะสาธารณะ getReader () {ลอง {// ที่จริงหมายถึงการเพิ่มในตอนท้ายของเนื้อหาไฟล์ต้นฉบับ หากไม่ได้เขียนมันหมายถึงการล้างไฟล์และเพิ่มเนื้อหา PrintWriter PW = PrintWriter ใหม่ (FileWriter ใหม่ (F, TRUE)); pw.write ("ทดสอบสตริงอินพุตเป็นไฟล์ 2"); pw.close (); } catch (ioexception e) {e.printstacktrace (); }} โมฆะคงที่สาธารณะหลัก (สตริง [] args) พ่น IOException {ทดสอบทดสอบ = การทดสอบใหม่ (); // ป้อนสตริงลงในไฟล์ test.getReader (); // อ่านสตริงสตริงที่สอดคล้องกัน str = test.writeinfile (); // เปิด system.out.println ("เนื้อหาไฟล์:"+str); -มีความคิดเห็นในประเด็นสำคัญของรหัสข้างต้นดังนั้นฉันจะไม่เข้าไปดูรายละเอียดทีละคน สิ่งสำคัญคือคุณไม่ลืมปิดหลังจากใช้สตรีม
จากนั้นใช้งานบนไฟล์ผ่านสตรีมไบต์คัดลอกเนื้อหาของไฟล์หนึ่งไปยังอีกไฟล์หนึ่ง:
แพ็คเกจ com.file.test2; นำเข้า java.io.file; นำเข้า java.io.fileinputstream นำเข้า java.io.filenotfoundException; นำเข้า java.io.fileOutputStream; นำเข้า java.io.ioException; ioException {// ไฟล์ต้นฉบับที่จะคัดลอก f = ไฟล์ใหม่ ("d: //test.txt"); // ไฟล์เป้าหมายไฟล์ f2 = ไฟล์ใหม่ ("d: //test2.txt"); // กำหนดอาร์เรย์ประเภทไบต์เพื่อจัดเก็บไบต์เนื้อหาอ่าน [] b = ไบต์ใหม่ [1024]; ความยาว int; ลอง {// กำหนด Read Stream FileInputStream ใน = ใหม่ FileInputStream (F); // กำหนดเอาต์พุตสตรีมไปยังไฟล์ fileOutputStream out = new fileOutputStream (F2); // เอาต์พุตเนื้อหาไฟล์ไปยังไฟล์อื่นในขณะที่ ((length = in.read (b))! =-1) {out.write (b, 0, ความยาว); } out.close (); in.close (); } catch (filenotfoundException e) {e.printStackTrace (); -ในการทำงานของสตรีมไบต์ไฟล์ต้นฉบับบนบรรทัดที่ 13 จะต้องมีอยู่ คุณสามารถเปลี่ยนเส้นทางไฟล์ด้วยตัวเองตามต้องการ คุณต้องมีอยู่เท่านั้น มิฉะนั้นจะมีการรายงานข้อผิดพลาดที่พบไฟล์ ในเวลาเดียวกันหากคุณต้องการส่งออกเนื้อหาของสตรีมไบต์อ่านบนคอนโซลคุณสามารถเพิ่มสองรหัสระหว่างบรรทัดที่ 27 และ 28: in.read (b, 0, b.length); system.out.println (สตริงใหม่ (b));
ข้างต้นเป็นการดำเนินการที่เกี่ยวข้องกับสตรีมอักขระและสตรีมไบต์ ในความเป็นจริงรหัสไม่ยากส่วนใหญ่เกี่ยวกับความเข้าใจของตัวเอง ทุกคนจะมีวิธีที่แตกต่างกันในการทำความเข้าใจปัญหาเดียวกัน แน่นอนสำหรับโปรแกรมเมอร์ของเรานอกเหนือจากการคิดมากขึ้นเราต้องทำมากขึ้น ในที่สุดฉันหวังว่าเนื้อหาข้างต้นจะเป็นประโยชน์กับทุกคนและโปรดสนับสนุนเว็บไซต์นี้ต่อไป