gpt4 book ai didi

java - 如何避免读取空值时强制关闭

转载 作者:行者123 更新时间:2023-12-01 04:23:38 25 4
gpt4 key购买 nike

我编写了简单的 Android 应用程序来使用 Apache.POI 读取文档属性,但是当它尝试读取具有 null 属性的文档时,它将强制关闭..

例如,我使用 getDocumentSummaryInformation() 然后使用 getCompany()..但是当文档属性在“公司”字段中没有任何值时,它将强制关闭。

如何处理这个问题?抱歉我的英语不好,感谢您的关注。

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;
import org.apache.poi.poifs.filesystem.*;
import org.apache.poi.hpsf.DocumentSummaryInformation;
import org.apache.poi.hpsf.SummaryInformation;
import org.apache.poi.hwpf.*;
import java.io.*;

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getInit();

cata = "";
compa = "";

readMyDocument(fileName);

try {

category.setText(cata);
company.setText(compa);

} catch (Exception e) {

category.setText("Unknown Category");
company.setText("Unknown Company");

}

}



String fileName = "/sdcard/Test.doc";
public static String cata, compa;

public static void readMyDocument(String fileName){
POIFSFileSystem fs = null;


try {
fs = new POIFSFileSystem(new FileInputStream(fileName));
HWPFDocument doc = new HWPFDocument(fs);

/** Read the document summary**/
readDocumentSummary(doc);

} catch (Exception e) {
e.printStackTrace();

}
}



public static MainActivity readDocumentSummary(HWPFDocument doc) {
DocumentSummaryInformation summaryInfo=doc.getDocumentSummaryInformation();
SummaryInformation summaryInfo2=doc.getSummaryInformation();

MainActivity adata = new MainActivity();

try{
String category = summaryInfo2.getAuthor();
adata.cata = category;
}catch (Exception e) {
Log.e("MainActivity", "Error occurred!, Error = "+e.toString());

}

try{
String company = summaryInfo.getCompany();
adata.compa = company;
}catch (Exception e) {
Log.e("MainActivity", "Error occurred!, Error = "+e.toString());

}

return adata;


}

TextView category;
TextView company;

public void getInit() {

category = (TextView) findViewById(R.id.category);
company = (TextView) findViewById(R.id.company);

}
}

日志:

FATAL EXCEPTION: main
java.lang.NoSuchFieldError: org.apache.poi.hwpf.HWPFDocument.filesystem
at org.apache.poi.hwpf.HWPFDocument.<init>(HWPFDocument.java:218)
at org.apache.poi.hwpf.HWPFDocument.<init>(HWPFDocument.java:158)
at com.ajs.metaxdc.MainActivity.readMyDocument(MainActivity.java:155)
at com.ajs.metaxdc.MainActivity.onCreate(MainActivity.java:87)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
at dalvik.system.NativeStart.main(Native Method)
Force finishing activity com.ajs.metaxdc/.MainActivity

最佳答案

// Try this one
try{
// write your code here
}catch(Exception e){
e.printStackTrace();
}

关于java - 如何避免读取空值时强制关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18712707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com