Java Android将文件加载到数组NullPointerException中
您好,我正在尝试将一组“列表”加载到字符串数组中,列表只是.txt文档,我想使用文件名作为我显示器上的列表名,因此我需要获取我创建的名为“列表”的文件夹中的所有文件,然后将它们显示到arrayadapter中Java Android将文件加载到数组NullPointerException中,java,android,android-file,Java,Android,Android File,您好,我正在尝试将一组“列表”加载到字符串数组中,列表只是.txt文档,我想使用文件名作为我显示器上的列表名,因此我需要获取我创建的名为“列表”的文件夹中的所有文件,然后将它们显示到arrayadapter中 private String[] getListNames() { //generates the file containing the list names File file = new File(this.getFilesDir() +File.separator
private String[] getListNames() {
//generates the file containing the list names
File file = new File(this.getFilesDir() +File.separator +"Lists");
System.out.println(file.getAbsolutePath());
File lists[] = file.listFiles();
String names[] = {};
if(lists.length >0){
for(int i = 0; i < lists.length; i ++){
names[i] = lists[i].getName();
}
}else{
names[0] = "Create New List";
}
private List myList=new ArrayList();
字符串root_sd=Environment.getExternalStorageDirectory().toString();
file=新文件(root_sd+“/Lists”);
文件列表[]=File.listFiles();
for(int i=0;i
试试这个。
//使用两个布尔变量。
文件;
布尔值mExternalStorageAvailable=false;
布尔值mExternalStorageWriteable=false;
//检查SD卡在设备中是启用还是禁用
String state=Environment.getExternalStorageState();
if(环境、介质、安装等于(状态)){
mExternalStorageAvailable=mExternalStorageWriteable=true;
}else if(Environment.MEDIA\u MOUNTED\u READ\u ONLY.equals(state)){
mExternalStorageAvailable=true;
mExternalStorageWriteable=false;
}否则{
mExternalStorageAvailable=mExternalStorageWriteable=false;
}
私有字符串[]getListNames(){
如果(mExternalStorageAvailable){
文件路径=新文件(Environment.getExternalStorageDirectory().getAbsolutePath());
如果(!path.exists()){
path.mkdirs();
}
file=path.getAbsolutePath();
}
否则{
//使用ContextWrapper以一种全新的方式访问内部存储。
ContextWrapper cw=新的ContextWrapper(getApplicationContext());
(或)
//生成包含列表名称的文件
file=新文件(this.getFilesDir()+file.separator+“list”);
如果(!file.exists()){
mkdirs()文件;
}
System.out.println(file.getAbsolutePath());
}
文件列表[]=File.listFiles();
字符串名称[]={};
试一试{
if(lists.length==0)
{
System.out.print(“目录中没有文件”);
}
否则{
如果(lists.length>0){
for(int i=0;i
如果文件。getFileList()
是否确实返回任何内容,则需要记录:
也
更改此项:
File lists[] = file.listFiles();
String names[] = {};
if(lists.length >0){
for(int i = 0; i < lists.length; i ++){
names[i] = lists[i].getName();
}
}else{
names[0] = "Create New List";
}
文件列表[]=File.listFiles();
字符串名称[]={};
如果(lists.length>0){
for(int i=0;i
到
文件列表[]=File.listFiles();
字符串名称[]={};
if(lists!=null&&lists.length>0){
for(int i=0;i
注意:如果
列表
数组首先是null
,则无法获取长度。!初始化字符串名称[]={};
如下字符串[]名称=新字符串[lists.length>0?lists.length:1]
List\u Activity.java类的第108行是哪一行?是的,List\u Activity.java的第108行,我刚刚做了一个快速测试,出于某种原因,它说文件不是目录,我如何修复它,因为我想这是替换新文件(this.getFilesDir()+file.separator+“List”)的原因
使用新文件(此.getFilesDir()+File.separator+“列出”+File.separator);
指向一个目录…检查是否(File.isDirectory)然后在if condition中继续你的逻辑当你发布答案时,请,请,请,将你的代码文本分开!并在代码中提供一些注释,OP无法理解他/她为什么会有问题!
private List<String> myList = new ArrayList<String>();
String root_sd = Environment.getExternalStorageDirectory().toString();
file = new File( root_sd + "/Lists" ) ;
File list[] = file.listFiles();
for( int i=0; i< list.length; i++)
{
myList.add( list[i].getName() );
}
try this one.
//use two boolean variables.
File file;
boolean mExternalStorageAvailable = false;
boolean mExternalStorageWriteable = false;
//check if the sdcard is enable or disable in your device
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
mExternalStorageAvailable = mExternalStorageWriteable = true;
} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
mExternalStorageAvailable = true;
mExternalStorageWriteable = false;
} else {
mExternalStorageAvailable = mExternalStorageWriteable = false;
}
private String[] getListNames() {
if (mExternalStorageAvailable) {
File path = new File(Environment.getExternalStorageDirectory().getAbsolutePath());
if (!path.exists()) {
path.mkdirs();
}
file=path.getAbsolutePath();
}
else {
//use ContextWrapper it a onw way to access internal storage.
ContextWrapper cw = new ContextWrapper(getApplicationContext());
(or)
//generates the file containing the list names
file = new File(this.getFilesDir() +File.separator +"Lists");
if (!file.exists()) {
file.mkdirs();
}
System.out.println(file.getAbsolutePath());
}
File lists[] = file.listFiles();
String names[] = {};
try{
if (lists.length==0)
{
System.out.print("There is no files in the Directory");
}
else{
if(lists.length >0){
for(int i = 0; i < lists.length; i ++){
names[i] = lists[i].getName();
}
}else{
names[0] = "Create New List";
}
catch(Exception e)
{
e.printStackTrace();
}
}
File lists[] = file.listFiles();
String names[] = {};
if(lists.length >0){
for(int i = 0; i < lists.length; i ++){
names[i] = lists[i].getName();
}
}else{
names[0] = "Create New List";
}
File lists[] = file.listFiles();
String names[] = {};
if(lists != null && lists.length >0){
for(int i = 0; i < lists.length; i ++){
names[i] = lists[i].getName();
}
}else{
names[0] = "Create New List";
}