في الآونة الأخيرة، نظرًا للحاجة إلى تدويل المشروع، من الضروري تدويل حوالي 100 مكون إضافي في المشروع بأكمله، وهذا أمر مؤلم لأنه عمل يدوي بحت. من أجل حفظ بعض العمل، فكرت في كتابة برنامج معالجة مجمعة لتقليل عبء العمل، لذلك توصلت إلى الكود التالي.
1. اقرأ الملف المحدد (.java) :
انسخ رمز الكود كما يلي:
سلسلة قراءة ثابتة عامة (مسار السلسلة) تطرح IOException {
الملف f = ملف جديد (المسار)؛
StringBuffer res = new StringBuffer();
String filePathStr = f.getPath();
System.out.println("احصل على مسار الملف:::::::"+filePathStr);
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis,Charset.forName("GBK")); // فتح ملف نصي بتشفير gbk
BufferedReader br = new BufferedReader(isr, 8192 * 8);
خط السلسلة = فارغ؛
كثافة العمليات = 0؛
بينما ((line=br.readLine())!=null) {
Linenum++;
res.append(line+"يمكنك إضافة منطق معالجة السلسلة الخاص بك هنا"+"/r/n");
}
br. Close();
إرجاع res.toString();
}
2. اكتب معلومات محتوى ملف القراءة إلى الملف (.java) المحدد انسخ رمز الكود كما يلي:
ملف الكتابة المنطقي العام الثابت (String cont، String path) {
يحاول {
توزيع الملف = ملف جديد (المسار)؛
OutputStreamWriterwriter = new OutputStreamWriter(new FileOutputStream(dist);"GBK");
كاتب.كتابة(تابع);
الكاتب. فلوش ()؛
الكاتب. قريب ()؛
عودة صحيحة؛
} قبض (IOException ه) {
printStackTrace();
عودة كاذبة.
}
}
3. ابحث عن كافة ملفات .java المؤهلة في الدليل المحدد وقم بتحديث معلومات الملف انسخ رمز الكود كما يلي:
/**
* البحث عن الملفات
* @param ف
* @throwsIOException
*/
البحث عن الفراغ الثابت العام (ملف f) يلقي IOException {
إذا (f. موجود ()) {
إذا (f.isDirectory()) {
ل(ملف خ:f.listFiles(ff)) {
findFile(fs);
}
} آخر {
updateFile(f);
}
}
}
/**
* قراءة ملفات جافا سطراً سطراً
* @param ف
* @throwsIOException
*/
ملف التحديث الفارغ الثابت الخاص (ملف f) يلقي IOException {
String filePathStr = f.getPath();
System.out.println("المسار لبدء قراءة الملف:::::::"+filePathStr);
FileInputStream fis = new FileInputStream(f);
InputStreamReader isr = new InputStreamReader(fis,Charset.forName("GBK")); // فتح ملف نصي بتشفير gbk
BufferedReader br = new BufferedReader(isr, 8192 * 8);
خط السلسلة = فارغ؛
كثافة العمليات = 0؛
StringBuffer res = new StringBuffer();
بينما ((line=br.readLine())!=null) {
String updateStr= updateStr(line);
res.append(updateStr+"/r/n");
إذا (!line.trim().equals(updateStr.trim())) {
Linenum++;
}
}
br. Close();
// إذا تم تعديل الملف، فسيقوم الملف المعدل بالكتابة فوق الملف الأصلي.
إذا (السطر> 0) {
System.out.println("======================================================================System.out.
System.out.println("filePathStr:"+filePathStr);
System.out.println("تم تعديل الملف في "+linenum+".");
System.out.println("======================================================================System.out.
String cont = res.toString();
ReadWriteFile.write(cont, filePathStr);
}
}
/**
* التحقق من معلومات سلسلة القراءة
* وتحديث معلومات السلسلة
* @param شارع
*/
سلسلة ثابتة خاصة updateStr(String str) {
// تحديد ما إذا كانت السلسلة عبارة عن سلسلة تحتاج إلى التحديث
boolean isok = filterStr(str);
int strNum = StringValidation.strNum(str, StringValidation.ch);
إذا (isok || strNum == 0) {
شارع العودة؛
} آخر {
درجة حرارة السلسلة = ""؛
for(int i=1;i<=strNum/2;i++) {
temp += " //$NON-NLS-"+i+"$"; // الأحرف المراد إضافتها
}
str = str+temp;
}
شارع العودة؛
}
// تصفية أنواع الملفات
FileFilter ثابت خاص ff = new FileFilter() {
قبول منطقي عام (اسم مسار الملف) {
مسار السلسلة = pathname.getName().toLowerCase();
logger.info("مسار عامل تصفية الملف:::"+path);
// تطابق فقط الملفات التي تنتهي بـ .java
إذا (pathname.isDirectory() || path.endsWith(".java")) {
عودة صحيحة؛
}
عودة كاذبة.
}
};
/**
* تصفية السلاسل التي لا تحتاج إلى معالجة
* @param شارع
* @يعود
*/
عامل التصفية المنطقي الثابت العام (String str) {
isok المنطقية = خطأ؛
// سلسلة التصفية
isok = (str.indexOf("import ")>=0)
|| (str.indexOf("package ")>=0)
|| (str.indexOf("class ")>=0)
|| (str.indexOf("//$NON-NLS")>=0)
|| (str.indexOf("//")==0)
|| (str.indexOf("/*")>=0)
|| (str.indexOf("*")>=0)
|| (str.trim().indexOf("@")==0)
|| (str.indexOf("/"")==-1)
||.
||.isCh(str);
عودة ايزوك.
}
/**
* التحقق مما إذا كانت السلسلة تحتوي على أحرف صينية
* @param شارع
* @يعود
*/
isCh المنطقية العامة الثابتة (String str) {
Pattern pa = Pattern.compile("[/u4E00-/u9FA0]");
Matcher m = pa.matcher(str);
isok المنطقية = m.find();
عودة ايزوك.
}
الملخص: عندما يصلنا طلب من الآخرين، لا تتعجل في التعامل معه، قم بتحليله أولاً، ثم تحليله، ومن ثم اتخاذ الحل الأمثل للتعامل مع العمل بشكل جيد.