我正在尝试读取文件并复制每个字符,因为它被读入字符数组然后打印出来。 输出只显示从文件中读取的最后一个字符。
文件中的文字:“kgdsfhgsdfbsdafj b
屏幕输出: b
请提出是否有任何问题。
我的代码:
char pt[] = new char[count];
//File is opened again and this time passed into the plain text array
FileInputStream f = new FileInputStream("/Documents/file1.txt") ;
int s ;
while((s = f.read()) != -1 )
{
int ind = 0;
pt[ind] = (char) s ;
ind ++ ;
}
for( int var = 0 ; var < pt.length ; var++)
{
System.out.print(pt[var]) ;
}
f.close();
答案 0 :(得分:2)
int ind = 0;
应该在循环之前。
int ind = 0;
while((s = f.read()) != -1 )
{
pt[ind] = (char) s ;
ind ++ ;
}
就像现在一样,你将每个角色都读到pt[0]
,所以最后只留下最后一个角色。
答案 1 :(得分:0)
将int ind = 0
行移出循环。
现在的方式是,它会在每次迭代时将索引重置为零。
答案 2 :(得分:0)
将您的代码更改为以下内容:
int ind = 0;
while ((s = f.read()) != -1) {
pt[ind] = (char) s;
ind++;
}
答案 3 :(得分:0)
它仍然不起作用,会有一个超出范围的例外。
错误在于
行 pt[ind] = (char) s;