Каким образом возможно брать файлы из папки Android и читать их?
Столкнулся с такой проблемой: при выполнении данного кода, постоянно появляется ошибка:
020-06-14 18:08:51.371 2240-2485/? E/AndroidRuntime: FATAL EXCEPTION: Thread-2
Process: com.softwaregardens.fl_project2, PID: 2240
java.lang.NullPointerException: Attempt to get length of null array
at com.softwaregardens.fl_project2.Background.checkFiles(Background.java:74)
at com.softwaregardens.fl_project2.Background$1.run(Background.java:58)
at java.lang.Thread.run(Thread.java:764)
Код:
public class Background extends Service {
//переменные
//Переменные Email
private final String emailAddress = "";
final String LOG_TAG = "MyLogs";
//системные (Директорные)
private final String filesDirectory = "/storage/emulated/0/Sputnik.Droid/Export/";
private ArrayList<String> fileNames;
private File folder = new File(filesDirectory);
public Background() {}
@Override
public IBinder onBind(Intent intent) {
p_check();
throw new UnsupportedOperationException("Not yet implemented");
}
@Override
public void onCreate() {
Log.d(LOG_TAG, "onCreate");
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(LOG_TAG, "onStartCommand");
p_check();
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy() {
super.onDestroy();
}
//периодическая проверка файла
void p_check() {
Log.d(LOG_TAG, "Cycle");
Thread run = new Thread(new Runnable() {
@Override
public void run() {
while(true) {
try {
checkFiles();
Log.d(LOG_TAG, "Cycle up");
Thread.sleep(1000 * 300);
} catch(InterruptedException ex) {
}
}
}
});
run.start();
}
void checkFiles() {
Log.d(LOG_TAG, "checkFiles");
String t_fileName = "";
File[] listOfFiles = folder.listFiles();
for(File file : listOfFiles) {
if(file.isFile()) {
t_fileName = file.getName().toString();
if(!fileNames.contains(t_fileName)) {
Log.d(LOG_TAG, "isFile");
fileNames.add(t_fileName);
} else {
Log.d(LOG_TAG, "isNotFile");
}
}
}
readFiles();
}
void readFiles() {
Log.d(LOG_TAG, "readFiles");
try {
for(String fileName : fileNames) {
BufferedReader br = new BufferedReader(new InputStreamReader(openFileInput(fileName)));
String str = "";
String s_str = "";
while((str = br.readLine()) != null) {
s_str = str;
}
sendEmail(s_str);
}
} catch(IOException e) {
e.printStackTrace();
}
}