一个错误,着急,大家帮忙看看!在线等!
写了个java类本机跑没问题,弄到unix下调用就出错了。错误如下。
Exception in thread "main" java.lang.NoSuchMethodError: java.io.BufferedWriter.append(Ljava/lang/CharSequence;)Ljava/io/Writer;
at sitech.prm.headPrm.ReplaceUserID.readWriteFile(ReplaceUserID.java:174)
at sitech.prm.headPrm.ReplaceUserID.main(ReplaceUserID.java:87)
代码如下。
public static void testFile(String dataFilename, String outDataFilename, String tableName, String userId, String id_No) throws Exception {
// dataFile 原数据文件
File dataFile = new File(dataFilename);
// finalFile 处理后的文件
File finalFile = new File(outDataFilename);
BufferedReader reader = null;
BufferedWriter writer = null;
int index = 0;
try {
reader = new BufferedReader(new FileReader(dataFile));
writer = new BufferedWriter(new FileWriter(finalFile));
String line = null;
while ((line = reader.readLine()) != null) {
//对读出的每行数据进行处理
//用processLine(String line) 实现
System.out.println( line);
//String txt = processLine(line);
String txt = line;
//然后写入处理后的文件
String bakTxt = "";
String str[] = txt.split("\\|");
if (str.length == 1) {
writer.append(txt);
} else {
for (int j = 0 ; j < str.length ; j ++) {
StringBuffer sb = new StringBuffer();
String writerTxt = str[j];
if (j <= 1) {
String idNo = findUserId(tableName, userId, id_No, writerTxt);
sb.append(new String((idNo == null || idNo.equalsIgnoreCase("") ? writerTxt : idNo)));
sb.append(new String("|"));
} else if (j > 1) {
sb.append(writerTxt);
if (j < str.length -1) {
sb.append(new String("|"));
} else if (j == str.length - 1) {
sb.append(new String("\n"));
}
}
System.out.println(sb.toString());
writer.append(sb.toString());
}
}
writer.newLine();
}
index ++;
writer.flush();
}
finally {
if (writer != null) {
writer.close();
}
if (reader != null) {
reader.close();
}
}