我已尝试按照代码段阅读文件
mFileReader = new FileReader(mAutoUpgradeFile);
mBufferedReader = new BufferedReader(mFileReader);
mStringBuilder = new StringBuilder();
String line=null;
while( null != (line=mBufferedReader.readLine()) ){
mStringBuilder.append(line);
Log.d(TAG,"read line ="+line+"\n");
}
mAutoUpgradeFile
的内容aaaaa
bbbbbb
ccccccccc
dddddddddd
通过readLine输出
读取行= 空间 aaaaa
读取行= bbbbbb
打印行的第一个字节的ASCII 它在下面的同一行:
65279 在这种情况下意味着什么?
65279
将编码格式更改为 UTF-8 + ! BOM 格式
此问题已解决
谢谢大家。
答案 0 :(得分:0)
String#trim()从字符串中删除任何前导和尾随空格。
返回字符串的副本,省略前导和尾随空格。
此外,您可以使用String#replaceFirst(String regex, String replacement)
将此字符串的第一个子字符串替换为给定的正则表达式与给定的替换。
使用正则表达式:
line= line.replaceFirst("^ ", "");
答案 1 :(得分:0)
使用String#trim()
方法或line.replaceAll("^\\s+|\\s+$", "")
将从末尾修剪空白。
左侧修剪:
line.replaceAll("^\\s+", "");
右边修剪:
line.replaceAll("\\s+$", "");
答案 2 :(得分:0)
如果“xxx”跟踪打印出从该行读取的第一个字符,那么你有一行以unicode char 65279开头(我不知道代表什么),所以它实际上不是空白或空格字符。
如果您确定在读取一行时想要允许哪些字符范围,我建议您修剪超出该范围的主要事件。
例如:要修剪A-Z,a-z和0-9中的所有前导字符:
line=line.replaceFirst("[^a-zA-Z0-9]*", "");