使用bufferedReader读取文本文件会添加一个空格,即android

时间:2014-08-12 11:53:55

标签: java android arraylist

我有这个方法从文本文件中获取arrayList:

private ArrayList<String[]> tempList(){
        String temp = null;
        ArrayList<String[]> tempList = new ArrayList<String[]>();
        try {
            BufferedReader bReader = new BufferedReader(new InputStreamReader(getAssets().open(getFilename())));
            while ((temp = bReader.readLine()) !=null){
            String[] value = temp.split(",");
                tempList.add(value);

            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return tempList;
    }

文件只有逗号分隔的字母,没有空格或空行。问题是,不知何故,列表的第一个字母前面有一个空格。所有其他信件都没问题。

这是包含本地字母的txt文件:

Α,Β,Γ
Δ,Ε,Ζ
Η,Θ,Ι
Κ,Λ,Μ
Ν,Ξ,Ο
Π,Ρ,Σ
Τ,Υ,Φ
Χ,Ψ,Ω

知道出了什么问题吗?

2 个答案:

答案 0 :(得分:3)

可以是零宽度空间,BOM,'\uFEFF'通常用作第一个字符(在Windows下由NotePad)来标记Unicode文件。所以Windows可以在UTF-8和普通的本地ANSI之间区分。

如果在编辑期间复制了第一行,之后又进行了字符编码转换,那就是解释。

temp = temp.replace("\uFEFF", "");

一般来说,删除BOM是一个好主意。

答案 1 :(得分:1)

根据@ user3505725:

的建议,对代码进行一些更改
String[] value = temp.trim().split(",");

希望这会有所帮助。