ในระหว่างกระบวนการพัฒนาคุณอาจพบการแปลงไฟล์ แม้ว่าเครื่องมือการพัฒนา Eclipse สามารถแปลงการเข้ารหัสได้ แต่ก็ไม่สะดวกในบางกรณี ตัวอย่างเช่นรหัสต้นฉบับของไฟล์เองคือ GBK แต่ตอนนี้จำเป็นต้องแปลงเป็น UTF-8 หากการเข้ารหัสไฟล์ได้รับการแก้ไขโดยตรงเป็น UTF-8 ใน eclipse ขอแสดงความยินดีมันถูกอ่านไม่ออกเพราะไม่สามารถแปลงโดยตรงจาก GBK เป็น UTF-8 เราจำเป็นต้องแปลงการเข้ารหัสด้วยตนเอง ด้านล่างนี้เป็นคลาสเครื่องมือแปลงการเข้ารหัสไฟล์
แพ็คเกจ com.mikan.stuff; นำเข้า Java.io.File; นำเข้า Java.io.FileInputStream; นำเข้า Java.io.FileOutputStream; นำเข้า java.io.filenamefilter; นำเข้า Java.io.InputStream; นำเข้า Java.io.InputStreamReader; นำเข้า Java.io.OutputStream; นำเข้า Java.io.OutputStreamWriter; นำเข้า java.nio.charset.charset; นำเข้า java.nio.charset.unsupportedCharsetexception; คลาสสาธารณะ FileCharSetConverter {public static void main (string [] args) โยนข้อยกเว้น {convert ("d: //stuff//src//main//java//com/mikan//stuff//test.txt name.endswith ("txt");}}); } / ** * แปลงไฟล์หรือไดเรกทอรีที่ระบุเป็นการเข้ารหัสที่ระบุ * * @param filename * ไฟล์ที่จะถูกแปลง * @param fromcharsetName * การเข้ารหัสของไฟล์ต้นฉบับ * @param tocharsetName * การเข้ารหัส {@throws แปลง (ไฟล์ใหม่ (ชื่อไฟล์), fromcharsetName, tocharsetName, null); } / ** * แปลงไฟล์หรือไดเรกทอรีที่ระบุเป็นไฟล์การเข้ารหัสที่ระบุ * * @param ไฟล์ * ไฟล์หรือไดเรกทอรีที่จะแปลง * @param fromcharsetName * การเข้ารหัสของไฟล์ต้นฉบับ * @param tocharsetName * การเข้ารหัส แปลง (ไฟล์, fromcharsetName, tocharsetName, null); } / ** * แปลงไฟล์หรือไดเรกทอรีที่ระบุเป็นไฟล์การเข้ารหัสที่ระบุ * * @param ไฟล์ * ไฟล์หรือไดเรกทอรีที่จะแปลง * @param fromcharsetName * การเข้ารหัสของไฟล์ต้นฉบับ * @param tocharsetName * encoding @param ToCharSetName, ตัวกรอง filenameFilter) โยนข้อยกเว้น {แปลง (ไฟล์ใหม่ (ชื่อไฟล์), fromcharsetName, toCharsetName, ตัวกรอง); } / ** * แปลงไฟล์หรือไดเรกทอรีที่ระบุเป็นไฟล์การเข้ารหัสที่ระบุ * * @param ไฟล์ * ไฟล์หรือไดเรกทอรีที่จะแปลง * @param fromcharsetName * การเข้ารหัสของไฟล์ต้นฉบับ * @param tocharsetName * การเข้ารหัส ToCharSetName, ตัวกรอง filenameFilter) โยนข้อยกเว้น {ถ้า (file.isdirectory ()) {ไฟล์ [] fileList = null; if (filter == null) {fileList = file.listFiles (); } else {fileList = file.listfiles (ตัวกรอง); } สำหรับ (ไฟล์ f: filelist) {แปลง (f, fromcharsetName, tocharsetName, ตัวกรอง); }} else {if (filter == null || filter.accept (file.getParentFile (), file.getName ())) {String fileContent = getFileContentFromCharset (ไฟล์, fromcharsetName); SaveFile2Charset (ไฟล์, tocharsetName, fileContent); }}} / ** * อ่านไฟล์ในการเข้ารหัสที่ระบุและส่งคืนเนื้อหาไฟล์ * * @param ไฟล์ * ไฟล์ที่จะแปลง * @param fromcharsetName * การเข้ารหัสของไฟล์ต้นฉบับ * @return * @throws Exception (! charset.issupported (fromcharsetName)) {โยน unsupportedCharsetexception ใหม่ (fromcharsetName); } inputStream inputStream = ใหม่ fileInputStream (ไฟล์); inputStreamReader reader = new InputStreamReader (inputStream, fromcharsetName); char [] chs = char ใหม่ [(int) file.length ()]; reader.read (CHS); string str = สตริงใหม่ (chs) .trim (); reader.close (); return str; } / ** * เขียนไฟล์ข้อความในวิธีการเข้ารหัสที่ระบุการดำรงอยู่จะเขียนทับ * * @param ไฟล์ * ไฟล์ที่จะเขียน * @param tocharsetName * การเข้ารหัสที่จะแปลง * @param เนื้อหาไฟล์ * @throws exception (! charset.issupported (tocharsetName)) {โยน unsupportedCharsetException ใหม่ (toCharsetName); } outputStream outputStream = ใหม่ fileOutputStream (ไฟล์); OutputStreamWriter OutWrite = New OutputStreamWriter (OutputStream, ToCharSetName); outwrite.write (เนื้อหา); outwrite.close (); -ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้ ฉันหวังว่ามันจะเป็นประโยชน์ต่อการเรียนรู้ของทุกคนและฉันหวังว่าทุกคนจะสนับสนุน wulin.com มากขึ้น