1. อ่านเนื้อหาไฟล์เป็นไบต์
public class ReadFromFile {public static void readFileBytes(String fileName) {File file = new File(fileName);InputStream in = null;try {System.out.println("อ่านเนื้อหาไฟล์เป็นไบต์ ทีละคำ ส่วน: ");//อ่านครั้งละหนึ่งไบต์ใน = new FileInputStream(file);int tempbyte; While ((tempbyte = in.read()) != -1) {System.out.write(tempbyte);}in.close();} catch (IOException e) {e.printStackTrace();return;}ลอง {System.out.println("อ่านไฟล์เป็นไบต์เนื้อหา อ่านหลายรายการ ไบต์ต่อครั้ง: ");// อ่านทีละหลายไบต์ byte[] tempbytes = new byte[100];int byteread = 0;in = new FileInputStream(fileName);ReadFromFile.showAvailableBytes(in);//อ่านหลายไบต์ลงในอาร์เรย์ไบต์ byteread คือจำนวนไบต์ที่อ่านในครั้งเดียวในขณะที่ ((byteread = in.read(tempbytes)) != - 1) { System.out.write(tempbytes, 0, byteread);}} catch (ข้อยกเว้น e1) {e1.printStackTrace();} ในที่สุด {if (in != null) {ลอง {in.close();} catch (IOException e1) {}}}}
2. อ่านเนื้อหาไฟล์ตามตัวอักษร
โมฆะสาธารณะ readFileByChars (ชื่อไฟล์สตริง) {ไฟล์ไฟล์ = ไฟล์ใหม่ (ชื่อไฟล์); ผู้อ่านผู้อ่าน = null; ลอง {System.out.println ("อ่านเนื้อหาไฟล์ในหน่วยอักขระทีละไบต์:"); /อ่านทีละตัวอักษร reader = new InputStreamReader(new FileInputStream(file));int tempchar; While ((tempchar = reader.read()) != -1) {// สำหรับ Windows เมื่ออักขระสองตัว /r/n อยู่ด้วยกัน จะเป็นการขึ้นบรรทัดใหม่ // แต่ถ้าทั้งสองตัวอักษรแสดงแยกกัน บรรทัดจะเปลี่ยนสองครั้ง // ดังนั้น block /r หรือ block /n ไม่เช่นนั้นจะมีบรรทัดว่างมากมาย if (((char) tempchar) != '/r') {System.out.print((char) tempchar);}}reader.close();} catch (ข้อยกเว้น e) {e.printStackTrace();} ลอง {System.out.println("อ่านเนื้อหาไฟล์ในหน่วยอักขระ อ่านหลายไบต์ในแต่ละครั้ง:");//อ่านอักขระหลายตัวพร้อมกัน char[] tempchars = new char[30];int charread = 0;reader = new InputStreamReader(new FileInputStream(fileName));//อ่านอักขระหลายตัวลงในอาร์เรย์อักขระ charread คือจำนวนอักขระที่อ่านในแต่ละครั้ง ((charread = reader.read(tempchars)) != -1 ) {// ป้องกัน /r และอย่าแสดง if ((charread == tempchars.length)&& (tempchars[tempchars.length - 1] != '/r')) {System.out.print(tempchars);} else {for (int i = 0; i < charread; i++) {if (tempchars[i] == '/r') {continue;} else {System.out. print(tempchars[i]);}}}}} catch (ข้อยกเว้น e1) {e1.printStackTrace();} ในที่สุด {if (reader != null) {ลอง {reader.close();} catch (IOException e1) {}}}}
3. อ่านเนื้อหาไฟล์ทีละบรรทัด
โมฆะคงสาธารณะ readFileByLines(String fileName) {File file = new File(fileName);BufferedReader reader = null; ลอง {System.out.println("อ่านเนื้อหาไฟล์ในหน่วยบรรทัด อ่านทั้งบรรทัดในแต่ละครั้ง:") ;reader = new BufferedReader(new FileReader(file));String tempString = null;int line = 1;//อ่านทีละบรรทัดจนกว่า null จะถูกอ่านเป็นจุดสิ้นสุดของไฟล์ในขณะที่ ((tempString = reader.readLine()) != null) {//แสดงหมายเลขบรรทัด System.out.println("line " + line + ": " + tempString);line++;}reader.close();} catch (IOException e) {e.printStackTrace();} ในที่สุด {if (reader != null) {try {reader.close();} catch (IOException e1) {}}}}
4. สุ่มอ่านเนื้อหาไฟล์
โมฆะคงที่สาธารณะ readFileByRandomAccess (ชื่อไฟล์สตริง) {RandomAccessFile RandomFile = null; ลอง {System.out.println ("สุ่มอ่านเนื้อหาไฟล์:"); // เปิดสตรีมไฟล์การเข้าถึงแบบสุ่มในโหมดอ่านอย่างเดียว RandomFile = ใหม่ RandomAccessFile ( fileName, "r"); // ความยาวไฟล์, จำนวนไบต์ long fileLength = RandomFile.length(); // อ่านตำแหน่งเริ่มต้นของไฟล์ int BeginIndex = (fileLength > 4) ? 4 : 0;//ย้ายตำแหน่งเริ่มต้นในการอ่านไฟล์ไปยังตำแหน่ง BeginIndex RandomFile.seek(beginIndex);byte[] bytes = new byte[10];int byteread = 0;//อ่านครั้งละ 10 ไบต์ หากเนื้อหาไฟล์น้อยกว่า 10 ไบต์ ให้อ่านไบต์ที่เหลือ // กำหนดจำนวนไบต์ที่อ่านในแต่ละครั้งให้กับ byteread While ((byteread = RandomFile.read(bytes)) != -1) {System.out.write(bytes, 0, byteread);}} catch (IOException e) {e.printStackTrace();} ในที่สุด {if (randomFile != null) {try {randomFile.close();} catch (IOException e1) {}}}}private static void showAvailableBytes (InputStream in) {ลอง {System.out.println ("จำนวนไบต์ในสตรีมอินพุตไบต์ปัจจุบันคือ:" + in.available ());} catch (IOException e) {e.printStackTrace ();} } โมฆะสาธารณะคง main (String [] args) {String fileName = "C:/temp/newTemp.txt";ReadFromFile.readFileBytes(ชื่อไฟล์);ReadFromFile.readFileByChars(ชื่อไฟล์);ReadFromFile.readFileByLines(ชื่อไฟล์);ReadFromFile.readFileByRandomAccess(ชื่อไฟล์);}}
5. ผนวกเนื้อหาต่อท้ายไฟล์
คลาสสาธารณะ AppendToFile {โมฆะสาธารณะคงที่ appendMethodA (ชื่อไฟล์สตริง, เนื้อหาสตริง) {ลอง {// เปิดสตรีมไฟล์การเข้าถึงแบบสุ่ม, อ่านและเขียน RandomAccessFile RandomFile = ใหม่ RandomAccessFile (ชื่อไฟล์, "rw"); // ความยาวไฟล์, หมายเลขคำ ของส่วน long fileLength = RandomFile.length();//ย้ายตัวชี้ไฟล์เขียนไปที่ท้ายไฟล์ RandomFile.seek(fileLength);randomFile.writeBytes(content);randomFile.close();} catch (IOException e) {e.printStackTrace();}} โมฆะคงที่สาธารณะ appendMethodB (ชื่อไฟล์สตริง, เนื้อหาสตริง) {ลอง {/ /เปิดตัวเขียนไฟล์ พารามิเตอร์ตัวที่สองเป็นจริงในตัวสร้างหมายถึงการเขียนไฟล์ในรูปแบบผนวก FileWriter = new FileWriter(ชื่อไฟล์, จริง);writer.write(content);writer.close();} catch (IOException e) {e.printStackTrace();}} โมฆะคงที่สาธารณะ main (String [] args) {String fileName = "C:/temp /newTemp.txt";String content = "new append!";//ผนวกไฟล์ตามวิธี AAppendToFile.appendMethodA(fileName, content);AppendToFile.appendMethodA(fileName, "append end. /n");//แสดงเนื้อหาไฟล์ ReadFromFile.readFileByLines(fileName);//ผนวกไฟล์ตามวิธี BAppendToFile.appendMethodB(fileName, content);AppendToFile. appendMethodB( fileName, "ผนวก end. /n");//แสดงเนื้อหาไฟล์ ReadFromFile.readFileByLines(fileName);}}