在Android应用程序中导入文本文件?

时间:2014-12-03 04:58:39

标签: android file

当我尝试运行从文本文件输入数据的Android应用程序时,我收到以下错误。 " java.io.fileNotFoundException:/File.txt:open failed:ENOENT(没有这样的文件或目录)"

有问题的文件位于Eclipse项目文件夹中。 我也尝试将它放在assets文件夹以及其他几个文件夹中。 以下是有问题的代码:

File file = new File("File.txt");
    TestOutput = new ArrayList<String>();
    String x = "";
    try
    {
        Scanner scanner = new Scanner(file);
        while (sc.hasNextLine())
        {
            x = sc.nextLine();
            TestOutput.add(x);
        }
        scanner.close();
    }
    catch (FileNotFoundException e)
    {
        e.printStackTrace();
    }

到目前为止,我试图使用包装类无济于事,其代码如下:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.Scanner;


public class FileGet
{

ArrayList<String> TestOutput = new ArrayList<String>();
public FileGet() {

}
public ArrayList<String> getFile() {
    File file = new File("TestOutput.txt");
    TestOutput = new ArrayList<String>();
    try
    {
        Scanner scanner = new Scanner(file);
        String x = "";
        while (scanner.hasNextLine())
        {
            x = scanner.nextLine();
            TestOutput.add(x);
        }
        scanner.close();
    }
    catch (FileNotFoundException e)
    {
        e.printStackTrace();
    }
    return TestOutput;
}
}

该代码在Android应用程序之外正常工作。任何建议/回应将不胜感激。

1 个答案:

答案 0 :(得分:1)

试试这个,名为“line”的字符串是读取所有文本文件的字符串。将.text文件放在/ resources / raw文件夹下。

InputStream is = getResources().openRawResource(R.raw.name_of_file);
BufferedReader r = new BufferedReader(new InputStreamReader(is));
StringBuilder total = new StringBuilder();
String line = null;
try {
    while ((line = r.readLine()) != null)
    total.append(line);
} catch (IOException e) {
    e.printStackTrace();
}
line = total.toString();