我正在尝试读取文件并将读取的每个字符复制到字符数组中并在JAVA中打印

时间:2014-11-22 14:02:59

标签: java

我正在尝试读取文件并复制每个字符,因为它被读入字符数组然后打印出来。 输出只显示从文件中读取的最后一个字符。

文件中的文字:“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();

4 个答案:

答案 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;