Я пытаюсь десериализовать файл XML в объект.Мой код завершается ошибкой в строке:
new FileInputStream(mySearch)
с java.io.FileNotFoundException
.
Итак, я добавил блок: если (существует), чтобы посмотреть, можно ли найти файл другим способом.
Я погуглил ошибку и прочитал другие темы обсуждения.Основываясь на этих обсуждениях, я попытался FIVE по-разному указать путь и имя файла.(См. Закомментированные попытки)
Желаемое поведение - выяснить, что не так с моим синтаксисом пути и имени файла, чтобы файл был найден и десериализован.
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.TextView;
import java.beans.XMLDecoder;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.File;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 5/20/2018 T. Pfaff - Added XMLDecoder Deserialization of XML file into EquationLib/LibSets/EquationSet
//===========================================================================================
//Below are the FIVE different ways that I've tried to get it to find the file
String myFileStr = "C:\\Users\\Terence\\Documents\\Meditate-Lemniscate\\Test_Single.xml";
//String myFileStr = "c:\\users\\terence\\documents\\meditate-lemniscate\\test_single.xml";
//String myFileStr = "C:/Users/Terence/Documents/Meditate-Lemniscate/Test_Single.xml";
//String myFileStr = "c:/users/terence/documents/meditate-lemniscate/test_single.xml";
//String myFileStr = "Test_Single.xml";
//===========================================================================================
String myEqSetName = "";
Integer myCnt = 0;
EquationLib equationLib = new EquationLib();
TextView myTV = (TextView) findViewById(R.id.myTextView);
//=============================================================================
//This block of code ALWAYS results in "Does NOT Exist"
//no matter which value I use for myFileStr
File mySearch = new File(myFileStr);
boolean exists = mySearch.exists();
if (exists) {
myTV.setText("YES EXISTS: " + myFileStr);
} else {
myTV.setText("Does NOT Exist: " + myFileStr);
}
//==============================================================================
XMLDecoder decoder=null;
// The first statement in the try block throws the exception:
//java.io.FileNotFoundException: C:\Users\Terence\Documents\Meditate-Lemniscate\Test_Single.xml (No such file or directory)
try{
FileInputStream myFileIS = new FileInputStream(mySearch);
decoder = new XMLDecoder(new BufferedInputStream(myFileIS));
equationLib = (EquationLib) decoder.readObject();
myCnt = equationLib.libSets.size();
myEqSetName = equationLib.libSets.get(0).equationSet.name;
} catch (Exception e){
e.printStackTrace();
}
//myTV.setText(myCnt.toString());
}
}