บทความนี้แชร์รหัสเฉพาะของเครื่องมือการอ่านและการเขียนไฟล์ Java สำหรับการอ้างอิงของคุณ เนื้อหาเฉพาะมีดังนี้
นำเข้า java.io.bufferedInputStream; นำเข้า java.io.bufferedOutputStream; นำเข้า java.io.bufferedreader; นำเข้า java.io.file; นำเข้า java.io.fileinputstream; นำเข้า java.io.filereader; java.io.inputstream; นำเข้า java.io.InputStreamReader; นำเข้า java.io.OutputStream; นำเข้า Java.io.printwriter; นำเข้า java.net.urlencoder; นำเข้า Java.util.arraylist; java.util.hashset; นำเข้า java.util.list; นำเข้า Javax.servlet.http.httpservletResponse;/** * <p> คลาสเครื่องมือการทำงานของไฟล์ <p> * @version 1.0 * @author li_hao * @date 18 มกราคม รับไดเรกทอรีรูทโครงการของ Windows/ Linux * @return */ สตริงคงที่สาธารณะ getContextPath () {สตริง fileUrl = thread.currentThread (). getContextClassLoader (). getResource (""). getPath (); if ("usr" .equals (fileUrl.substring (1,4))) {fileUrl = (fileUrl.SubString (0, fileUrl.length ()-16)); // linux} else {fileUrl = (fileUrl.substring (1, fileurl.length ()-16)); } / *** สตริงไปอาร์เรย์* @param str string* @param splitstr delimiter* @return* / สตริงคงที่สาธารณะ [] stringtoarray (สตริง str, string splitstr) {string [] arraystr = null; if (! "". เท่ากับ (str) && str! = null) {ถ้า (str.indexof (splitstr)! =-1) {arraystr = str.split (splitstr); } else {arraystr = สตริงใหม่ [1]; arraystr [0] = str; }} return arraystr; } / ** * อ่านไฟล์ * * @param path * @return * / สตริงคงที่สาธารณะ readfile (พา ธ สตริง) {bufferedreader reader = null; String lastStr = ""; ลอง {fileInputStream fileInputStream = ใหม่ fileInputStream (พา ธ ); inputStreamReader inputStreamReader = ใหม่ inputStreamReader (fileInputStream, "UTF-8"); reader = ใหม่ bufferedReader (inputStreamReader); สตริง tempstring = null; ในขณะที่ ((tempstring = reader.readline ())! = null) {lastStr += tempString; } reader.close (); } catch (ioexception e) {e.printstacktrace (); } ในที่สุด {ถ้า (reader! = null) {ลอง {reader.close (); } catch (ioexception e) {e.printstacktrace (); }}} return lastStr; } /** * รับชื่อของไฟล์ทั้งหมดในโฟลเดอร์ + เคียวรีฟัซซี่ (เมื่อไม่จำเป็นต้องใช้การสืบค้นฟัซซี่ querystr สามารถส่งผ่านว่างหรือว่างเปล่า) * 1 เมื่อไม่มีการทำแผนที่จะส่งกลับค่า rettype คือ 1 * 2 ส่งคืนค่า rettype คือ 3, ชื่อไฟล์ชื่อ filenamelist, folderName list folderNamelist * @param path folderpath * @param querystr query query query string * @return */ public Static Hashmap <String, Object> getFilesName รายการ <string> filenamelist = arrayList ใหม่ <> (); // รายการชื่อไฟล์รายการ <String> folderNamelist = arrayList ใหม่ <> (); // ชื่อโฟลเดอร์รายการไฟล์ F = ไฟล์ใหม่ (FolderPath); if (! f.exists ()) {// เส้นทางไม่มี map.put ("rettype", "1"); } else {boolean flag = f.isdirectory (); if (flag == false) {// พา ธ คือไฟล์ map.put ("rettype", "2"); map.put ("ชื่อไฟล์", f.getName ()); } else {// พา ธ คือโฟลเดอร์ map.put ("rettype", "3"); ไฟล์ fa [] = f.listfiles (); querystr = querystr == null? "": querystr; // ถ้า querystr ถูกส่งไปยัง null ให้แทนที่ด้วยว่างเปล่า (ค่าดัชนีการจับคู่ไม่สามารถเป็นโมฆะ) สำหรับ (int i = 0; i <fa.length; i ++) {ไฟล์ fs = fa [i]; if (fs.getName (). indexof (querystr)! =-1) {ถ้า (fs.isdirectory ()) {folderNamelist.add (fs.getName ()); } else {filenamelist.add (fs.getName ()); }}} map.put ("filenamelist", filenamelist); map.put ("folderNamelist", folderNamelist); }} คืนแผนที่; } / ** * อ่านไฟล์ในหน่วยพฤติกรรมและอ่านไปยังบรรทัดสุดท้าย * @param filepath * @return * / รายการคงที่สาธารณะ <String> ReadFileContent (String FilePath) {BufferedReader Reader = null; รายการ <String> listContent = new ArrayList <> (); ลอง {reader = ใหม่ bufferedReader (ใหม่ filereader (filePath)); สตริง tempstring = null; int line = 1; // อ่านทีละบรรทัดจนกระทั่ง null เป็นจุดสิ้นสุดของไฟล์ในขณะที่ ((tempstring = reader.readline ())! = null) {listcontent.add (tempstring); บรรทัด ++; } reader.close (); } catch (ioexception e) {e.printstacktrace (); } ในที่สุด {ถ้า (reader! = null) {ลอง {reader.close (); } catch (ioexception e1) {}}} return listContent; } / ** * อ่านข้อมูลแถวที่ระบุหมายเหตุ: 0 คือบรรทัดเริ่มต้น * @param filepath * @param linenumber * @return * / สตริงคงที่สาธารณะ readlinecontent (สตริง filepath, int linenumber) {bufferedreader reader = null; สตริง linecontent = ""; ลอง {reader = ใหม่ bufferedReader (ใหม่ filereader (filePath)); int line = 0; ในขณะที่ (line <= linenumber) {linecontent = reader.readline (); บรรทัด ++; } reader.close (); } catch (ioexception e) {e.printstacktrace (); } ในที่สุด {ถ้า (reader! = null) {ลอง {reader.close (); } catch (ioexception e1) {}} ส่งคืน linecontent; } / *** อ่านข้อมูลจากจุดเริ่มต้นไปยัง Endline (รวมถึงจุดเริ่มต้นและ endline), หมายเหตุ: 0 คือบรรทัดเริ่มต้น* @param filepath* @param startlinenumber บรรทัดเริ่มต้น* @param endlinenumber บรรทัดปลาย* @return* / รายการคงที่ <string> readlinescontent ลอง {int count = 0; bufferedReader reader = bufferedReader ใหม่ (filereader ใหม่ (filePath)); สตริงเนื้อหา = reader.readline (); ในขณะที่ (เนื้อหา! = null) {if (count> = startLineNumber && count <= endlinenumber) {listcontent.add (เนื้อหา); } content = reader.readline (); นับ ++; }} catch (exception e) {} return listContent; } / ** * อ่านข้อมูลทั้งหมดในหลาย ๆ ไฟล์ * @param listfilepath * @return * / รายการคงที่สาธารณะ <String> readFileContent_list (รายการ <String> ListFilePath) {รายการ <String> listContent = arrayList ใหม่ <> (); สำหรับ (String FilePath: ListFilePath) {ไฟล์ไฟล์ = ไฟล์ใหม่ (filePath); bufferedReader reader = null; ลอง {reader = ใหม่ bufferedReader (ใหม่ filereader (ไฟล์)); สตริง tempstring = null; int line = 1; // อ่านทีละบรรทัดจนกระทั่ง null เป็นจุดสิ้นสุดของไฟล์ในขณะที่ ((tempstring = reader.readline ())! = null) {listcontent.add (tempstring); บรรทัด ++; } reader.close (); } catch (ioexception e) {e.printstacktrace (); } ในที่สุด {ถ้า (reader! = null) {ลอง {reader.close (); } catch (ioexception e1) {}}}} return listContent; } /** * ข้อมูลไฟล์ถูกเขียน (หากไม่มีโฟลเดอร์และไฟล์อยู่พวกเขาจะถูกสร้างขึ้นก่อนแล้วเขียน) * @param filepath * @param เนื้อหา * @param flag จริง: หากไฟล์มีอยู่และเนื้อหามีอยู่เนื้อหาจะถูกเพิ่มในบรรทัดใหม่; FALSE: หากมีไฟล์และเนื้อหาอยู่เนื้อหาจะถูกแทนที่*/ String String Public String FileLinesWrite (String FilePath, เนื้อหาสตริง, ธงบูลีน) {String filedo = "เขียน"; FileWriter FW = NULL; ลอง {file file = ไฟล์ใหม่ (filePath); // หากโฟลเดอร์ไม่มีอยู่ให้สร้างโฟลเดอร์ถ้า (! file.getParentFile (). มีอยู่ ()) {file.getParentFile (). mkdirs (); } if (! file.exists ()) {// ถ้าไฟล์ไม่มีอยู่ให้สร้างไฟล์และเขียนบรรทัดแรกของ file.createnewfile (); fw = ใหม่ filewriter (ไฟล์); filedo = "สร้าง"; } else {// ถ้าไฟล์มีอยู่ให้ผนวกหรือแทนที่เนื้อหา fw = filewriter ใหม่ (ไฟล์, แฟล็ก); }} catch (ioexception e) {e.printstacktrace (); } PrintWriter PW = New PrintWriter (FW); pw.println (เนื้อหา); pw.flush (); ลอง {fw.flush (); pw.close (); fw.close (); } catch (ioexception e) {e.printstacktrace (); } return filedo; } / ** * เขียนไฟล์ * @param ins * @param out * / โมฆะคงที่สาธารณะ writeintoout (inputstream ins, outputstream out) {byte [] bb = byte ใหม่ [10 * 1024]; ลอง {int cnt = ins.read (bb); ในขณะที่ (cnt> 0) {out.write (bb, 0, cnt); cnt = ins.read (bb); }} catch (ioexception e) {e.printstacktrace (); } ในที่สุด {ลอง {out.flush (); ins.close (); out.close (); } catch (ioexception e) {e.printstacktrace (); }}} / ** * พิจารณาว่าองค์ประกอบในรายการนั้นเหมือนกัน (ส่งคืนจริงถ้าเหมือนกันหรือไม่หรือส่งคืนเท็จ) * @param list * @return * / hassame บูลีนแบบคงที่ส่วนตัว (รายการ <? ขยายวัตถุ> รายการ) {if (null == รายการ) return 1 == ใหม่ hashset <jobch> (รายการ) .size (); } / ** * พิจารณาว่ามีองค์ประกอบที่ซ้ำกันในรายการ (ส่งคืนจริงหรือไม่ถ้าไม่มีการทำซ้ำมิฉะนั้นคืนค่าเท็จ) * @param list * @return * / บูลีนแบบคงที่ hassame2 (รายการ <? ขยายวัตถุ> รายการ) {ถ้า (null == รายการ) ส่งคืน false; return list.size () == ใหม่ hashset <jobch> (รายการ) .size (); }/** * เพิ่ม/ลดจำนวนวัน * @param วันที่ * @param num * @return */วันที่สาธารณะคงที่ dateaddorsub (วันที่วันที่, int num) {ปฏิทิน startdt = calendar.getInstance (); startdt.settime (วันที่); startdt.add (calendar.day_of_month, num); return startdt.getTime (); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น