请各位师傅们指点迷津。
想将class A中分列放置在表格中的数据“realDate”、“realTime;”、“hmiSettings.eventID.getEventId(eventId[idx])”、“hmiSettings.eventID.getShortText(eventId[idx])”(均为String类型)通过建立在class C中的一个按钮命令调用class B中的createFile创建方法,全部导入到同一个TXT文本中。
使用 “System.out.println(textlog);” 可以看到第4列的数据(datelog/timelog/idlog均可以看到数据输出),如图。
但是在class B中调用class A的“realDate”、“realTime;”、“hmiSettings.eventID.getEventId(eventId[idx])”、“hmiSettings.eventID.getShortText(eventId[idx])”,关于时间、描述等内容的时候却显示为空值,导出的TXT文本没有任何内容。
public class A extends C {
private synchronized void bufferUpdate() {
//setCellString(int r, int c, String s)
setCellString(r, 0, realDate);//日期
setCellString(r, 1, realTime);//时间
setCellString(r, 2, Settings.eventID.getEventId(eventId[idx]), false);//代码
setCellString(r, 3, Settings.eventID.getShortText(eventId[idx]), false);//描述
repaintCells();
datelog = realDate;
timelog = realTime;
idlog = hmiSettings.eventID.getEventId(eventId[idx]);
textlog = hmiSettings.eventID.getShortText(eventId[idx]);
System.out.println(textlog);
}
______________________________________________________________________________________________________________________________________________________
public class B extends E {
public void createFile(String fileLocation) {
//方法A:
/*OutputStream os = null;
try {
os = new FileOutputStream(new File(fileLocation));
String content = "";
byte[] data = content.getBytes();
os.write(data);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
os.close();//关闭输出流
} catch (IOException e) {
e.printStackTrace();
}
}*/
//方法B:
BufferedWriter bw;
try {
bw = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileLocation,false)));
//写数据
bw.write("");
//刷新流
bw.flush();
//关闭资源
bw.close();
} catch (Exception e) {
e.printStackTrace();
}