أثناء عملية التطوير ، قد تواجه تحويل ترميز الملفات. على الرغم من أن أداة التطوير يمكن أن تقوم بتحويل الترميز ، إلا أنها غير مريحة في بعض الحالات. على سبيل المثال ، كان الكود الأصلي للملف نفسه هو 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 من CharSetName * ترميز الملف المصدر * param tocharsetname * الترميز المراد تحويله * athrows استثناء * / public static void ، من charsetname ، tocharsetname ، null) ؛ } / ** * قم بتحويل الملف أو الدليل المحدد إلى ملف الترميز المحدد * * param file * ملف أو دليل ليتم تحويله * param fromcharsetName * ترميز ملف المصدر * param tocharsetname * الترميز للتشفير * @throos stisply * / public static void convert (file file from tochcharsetname ، tocharsetname ، null) ؛ } / ** * قم بتحويل الملف أو الدليل المحدد إلى الترميز المحدد * * ملف param * ملف أو دليل ليتم تحويله * param fromcharsetName * ترميز الملف المصدر * param tocharsetname * تشفير filentname ، ferting filtername ، strur toonam FilenameFilter Filter) يلقي الاستثناء {convert (ملف جديد (اسم الملف) ، من CharsetName ، TocharsetName ، filter) ؛ } / ** * قم بتحويل الملف أو الدليل المحدد إلى الترميز المحدد * * ملف param * ملف أو دليل ليتم تحويله * param fromcharsetName * ترميز ملف المصدر * param tocharsetname * الترميز من fildentname filtername * filter filter * / filter filter * / public static void convert ( مرشح) يلقي الاستثناء {if (file.isdirectory ()) {file [] fileList = null ؛ if (filter == null) {fileList = file.listfiles () ؛ } آخر {fileList = file.listfiles (filter) ؛ } لـ (file f: fileList) {convert (f ، fromcharsetName ، tocharsetName ، filter) ؛ }} else {if (filter == null || filter.accept (file.getParentFile () ، file.getName ())) {string fileContent = getFileContentFromcharset (file ، fromcharsetName) ؛ SaveFile2Charset (ملف ، tocharsetname ، fileContent) ؛ }}} / ** * اقرأ الملف في الترميز المحدد وأرجع محتوى الملف * * ملف ملف * param * ليتم تحويله * param fromcharsetname * ترميز ملف المصدر * regurn * @throos * / charsetn static getFileContentFromCharset (file file from charsetname) UnsupportedCharsetException (من charsetname) ؛ } inputStream inputStream = جديد fileInputStream (ملف) ؛ inputStreamReader Reader = جديد inputStreamReader (inputStream ، fromcharsetName) ؛ char [] chs = new char [(int) file.length ()] ؛ reader.Read (CHS) ؛ سلسلة str = سلسلة جديدة (chs) .trim () ؛ reader.close () ؛ إرجاع شارع } / ** * اكتب ملفًا نصيًا في طريقة ترميز محددة ، سيقوم الوجود بالكتابة * * * param file * ملف ليتم كتابته * param tocharsetname * الترميز ليتم تحويله * content content * param content * athrows استثناء * / charset رمي جديد غير مدعوم CharseSception (TocharsetName) ؛ } outputStream OutputStream = fileOutputStream جديد (ملف) ؛ OutputStreamWriter OutWrite = new OutputStreamWriter (OutputStream ، TharsetName) ؛ OutWrite.write (المحتوى) ؛ OutWrite.close () ؛ }}ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.