Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

จะเขียนทับบรรทัดในไฟล์. txt โดยใช้ Java ได้อย่างไร?


ใช้ API แล้ว

replaceAll() เมธอดของคลาส String ยอมรับสองสตริงที่แสดงนิพจน์ทั่วไปและสตริงแทนที่ และแทนที่ค่าที่ตรงกันด้วยสตริงที่กำหนด

คลาส java.util (คอนสตรัคเตอร์) ยอมรับไฟล์, InputStream, พาธและ, ออบเจ็กต์สตริง, อ่านประเภทข้อมูลดั้งเดิมและสตริง (จากแหล่งที่กำหนด) โทเค็นโดยใช้โทเค็นโดยใช้นิพจน์ทั่วไป หากต้องการอ่านข้อมูลประเภทต่างๆ จากแหล่งที่มาโดยใช้เมธอด nextXXX() ที่ให้มา

StringBuffer class เป็นทางเลือกที่ไม่แน่นอนสำหรับ String หลังจากสร้างอินสแตนซ์ของคลาสนี้แล้ว คุณสามารถเพิ่มข้อมูลลงในคลาสได้โดยใช้เมธอด append()

ขั้นตอน

ในการเขียนทับบรรทัดหนึ่งของไฟล์ -

อ่านเนื้อหาของไฟล์เป็นสตริง -

  • ยกตัวอย่างคลาสไฟล์

  • สร้างอินสแตนซ์คลาส Scanner ที่ส่งไฟล์เป็นพารามิเตอร์ไปยังตัวสร้าง

  • สร้างวัตถุ StringBuffer ว่าง

  • เพิ่มเนื้อหาของไฟล์ทีละบรรทัดไปยังวัตถุ StringBuffer โดยใช้วิธี append()

  • แปลง StringBuffer เป็น String โดยใช้วิธี toString()

  • ปิดวัตถุสแกนเนอร์

เรียกใช้ replaceAll() เมธอดบนสตริงที่ได้รับผ่านบรรทัดที่จะแทนที่ (บรรทัดเก่า) และบรรทัดการแทนที่ (บรรทัดใหม่) เป็นพารามิเตอร์

เขียนเนื้อหาไฟล์ใหม่ -

  • สร้างอินสแตนซ์คลาส FileWriter

  • เพิ่มผลลัพธ์ของวิธีการ replaceAll() ของวัตถุ FileWriter โดยใช้วิธี append()

  • พุชข้อมูลที่เพิ่มไปยังไฟล์โดยใช้เมธอด flush()

ตัวอย่าง

<ก่อน> นำเข้า java.io.File; นำเข้า java.io.FileNotFoundException; นำเข้า java.io.FileWriter; นำเข้า java.io.IOException นำเข้า java.util.Scanner; คลาสสาธารณะ OverwriteLine { โมฆะคงสาธารณะหลัก (สตริง args [ ]) พ่น IOException {// ตรวจสอบคลาสไฟล์ String filePath ="D://input.txt"; //สร้างอินสแตนซ์ของคลาส Scanner เพื่ออ่านไฟล์ Scanner sc =new Scanner(ไฟล์ใหม่(filePath)); // แสดงตัวอย่างคลาส StringBuffer บัฟเฟอร์ StringBuffer =ใหม่ StringBuffer(); // กำลังอ่านบรรทัดของไฟล์และต่อท้าย StringBuffer ในขณะที่ (sc.hasNextLine()) { buffer.append (sc.nextLine()+System.lineSeparator()); } สตริง fileContents =buffer.toString (); System.out.println("เนื้อหาของไฟล์:"+fileContents); //ปิดวัตถุสแกนเนอร์ sc.close(); String oldLine ="ไม่มีเงื่อนไขและไม่มีอะไรขัดขวาง การเรียนรู้อย่างง่าย!"; String newLine ="เพลิดเพลินกับเนื้อหาฟรี"; //แทนที่บรรทัดเก่าด้วยบรรทัดใหม่ fileContents =fileContents.replaceAll(oldLine, newLine); // แสดงตัวอย่างคลาส FileWriter FileWriter writer =FileWriter ใหม่ (filePath); System.out.println(""); System.out.println("ข้อมูลใหม่:"+fileContents); writer.append (เนื้อหาไฟล์); นักเขียน.flush(); }}

ผลลัพธ์

เนื้อหาของไฟล์:Tutorials Point เกิดขึ้นจากแนวคิดว่ามีกลุ่มผู้อ่านที่ตอบสนองต่อเนื้อหาออนไลน์ได้ดีขึ้นและต้องการเรียนรู้ทักษะใหม่ๆ เนื้อหาและแหล่งข้อมูลของเรามีให้ใช้งานโดยเสรี และเราต้องการให้มันเป็นเช่นนั้น ส่งเสริมให้ผู้อ่านของเราได้รับทักษะมากเท่าที่พวกเขาต้องการ เราไม่บังคับให้ผู้อ่านของเราลงทะเบียนกับเราหรือส่งรายละเอียดของพวกเขาอย่างใดอย่างหนึ่ง ไม่มีเงื่อนไขเบื้องต้นและไม่มีอุปสรรค การเรียนรู้ที่ง่ายอย่างง่าย! ข้อมูลใหม่:Tutorials Point เกิดขึ้นจากแนวคิดที่ว่า มีกลุ่มผู้อ่านที่ตอบสนองต่อเนื้อหาออนไลน์ได้ดีขึ้นและต้องการเรียนรู้ทักษะใหม่ๆ เนื้อหาและแหล่งข้อมูลของเรามีให้ใช้งานโดยเสรี และเราต้องการเก็บไว้เป็นแนวทางในการสนับสนุน ผู้อ่านของเราได้รับทักษะมากเท่าที่พวกเขาต้องการ เราไม่บังคับให้ผู้อ่านลงทะเบียนกับเราหรือส่งรายละเอียดด้วย เพลิดเพลินกับเนื้อหาฟรี