我正在从文件中检索数据,由于某种原因,我每次都会错过第一个字符。 我的代码。
public String readFile(){
String str = "Not Authenticated";
//Reading the file
try{
FileInputStream fIn = openFileInput(fileName);
InputStreamReader isr = new InputStreamReader(fIn);
char[] inputBuffer = new char[isr.read()]; //str.length()
// Fill the Buffer with data from the file
try {
isr.read(inputBuffer);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return e.toString();
}
// Transform the chars to a String
String readString = new String(inputBuffer);
str = readString;
} catch (IOException ioe)
{return ioe.toString();}
return str;
}
该文件包含单词“True” 我得到“芸香” 当我创建文件时,第一个字母不能是大写?如果我使用资本,文件永远不会被发现我猜这两个是不相关的。
答案 0 :(得分:1)
char[] inputBuffer = new char[isr.read()]; //str.length()
这不会读取读者的角色吗?
编辑:http://docs.oracle.com/javase/1.4.2/docs/api/java/io/InputStreamReader.html
答案 1 :(得分:1)
如果该文件是text
文件,则通过BufferedReader
阅读。
StringBuilder sb=new StringBuilder();
BufferedReader br=null;
try{
br=new BufferedReader(new InputStreamReader(openFileInput(fileName));
String line=null;
while((line = br.readLine()) != null)
{
sb.append(line);
}
}catch(Exception ex){
//
}finally{
if(br!=null)
br.close();
}
return sb.toString();
答案 2 :(得分:0)
isr.read()将读取单个字符(即第一个字符)。
要获取文件的大小,您可以使用
long length = new File(fileName).length()
有关详细信息,请参阅 File.length()功能。
答案 3 :(得分:0)
您可以使用File类查找文件的长度,:
File f=new File("c:\\new\\abc.txt");
f.length();
将以字节为单位返回大小
您还应该关闭打开的文件。按isr.close();