需要帮助从文本文件中读取文本到ArrayList <string>(Android)</string>

时间:2014-08-15 15:59:52

标签: android streamreader filereader arrays

我正在处理一个图片库应用程序,其中我正在从URL加载图像,所以我已经在文本文件中保存了一些图像URL,我试图从文本文件中读取URL到ArrayList<String>但我不是能够在我的应用程序中加载图像。

我试过这个:但是没有作品图片没有加载

package com.nostra13.example.universalimageloader;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public final class Constants {

    public static List<String> LIST = new ArrayList<String>();

    public void parseFile() {

        BufferedReader br = null;
        try {

              String sCurrentLine;

              br = new BufferedReader(new FileReader("link.txt"));

              while ((sCurrentLine = br.readLine()) != null) {
                  LIST.add(sCurrentLine);
              }
              br.close();
          } 
          catch (IOException e) {
             e.printStackTrace();
          } 
          finally {
              try {
                  if (br != null)br.close();
              } 
              catch (IOException ex) {
                       ex.printStackTrace();
              }
           }

    }

    public static final String[] IMAGES = LIST.toArray(new String[LIST.size()]);

    private Constants() {

    }

    public static class Config {
        public static final boolean DEVELOPER_MODE = false;
    }

    public static class Extra {

        public static final String IMAGES = "com.nostra13.example.universalimageloader.IMAGES";
        public static final String IMAGE_POSITION = "com.nostra13.example.universalimageloader.IMAGE_POSITION";
    }
}

但如果我像这样手动添加网址:它可以运作。

public static final String[] IMAGES = new String[] {
    "https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTybItEfE2Xu-Or72BHw8uZf19_mV2Kr8cuuU8kKYrVbeZPXIeX-Q",
"https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTybItEfE2Xu-Or72BHw8uZf19_mV2Kr8cuuU8kKYrVbeZPXIeX-Q",
"https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTybItEfE2Xu-Or72BHw8uZf19_mV2Kr8cuuU8kKYrVbeZPXIeX-Q",
"https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTybItEfE2Xu-Or72BHw8uZf19_mV2Kr8cuuU8kKYrVbeZPXIeX-Q",
    };

但我想从文本文件(sdcard / file.txt)添加文字,而不是手动添加。

2 个答案:

答案 0 :(得分:0)

那么,您是否尝试使用Log.d()发布从文件中读取的文本行?

我最好的猜测是它没有正确读取文本文件,或者错误地格式化它(可能缺少空格,所以它认为它的1个大字符串?)

答案 1 :(得分:0)

尝试使用此代码:

public void parseFile() {
    File sdcard = Environment.getExternalStorageDirectory();

    File file = new File(sdcard,"link.txt");

    BufferedReader br = null;
    try {
          String sCurrentLine;
          br = new BufferedReader(new FileReader(file));

          while ((sCurrentLine = br.readLine()) != null) {
              LIST.add(sCurrentLine);
          }
          br.close();
      } 
      catch (IOException e) {
         e.printStackTrace();
      } 
      finally {
          try {
              if (br != null)br.close();
          } 
          catch (IOException ex) {
                   ex.printStackTrace();
          }
       }

}

对Environment.getExternalStorageDirectory()的调用将返回SD卡的路径,并且声明的变量文件的路径相对于SD卡的根目录。如果文件夹上的文件,你应该声明:

File file = new File(sdcard,"data/com.myapplication.example/images/link.txt");