私は、Javaを使用してファイルからテキストを読み取ります。ここに私のコードは次のとおりです。私のコードがファイルのテキストを複製するのはなぜですか?
public void readCurrentPage(){
FileInputStream file = null;
BufferedInputStream buff = null;
int readByteValue;
Exception lastShownException = null;
boolean errorShown = false;
boolean readOnce;
try{
errorShown = false;
file = new FileInputStream("/Volumes/Storage Drive/eclipse/workspace/Nicholas Planner/bin/data/test.txt");
buff = new BufferedInputStream(file,8*1024);
while (true){
readByteValue = buff.read();
if (readByteValue == -1){
break;
}
System.out.print((char) readByteValue + " ");
}
}catch(Exception e){
if(errorShown == false && lastShownException!=e){
JOptionPane.showMessageDialog(null, "There was an error: \n"+e, "Error!", 1);
e = lastShownException;
errorShown = true;
}
}finally{
try{
errorShown = false;
buff.close();
file.close();
}catch(Exception e){
if(errorShown == false && lastShownException!=e){
JOptionPane.showMessageDialog(null, "There was an error: \n"+e, "Error!", 1);
e = lastShownException;
errorShown = true;
}
}
}
}
これは、ファイルのテキストです:
test
This is cool!
私は上記のコードを使用してファイルを読み込み、これまで、これは私が得るものであるとき:
t e s t
T h i s i s c o o l ! t e s t
T h i s i s c o o l !
私のコードがファイルのテキストを複製するのはなぜですか?
あなたの機能が正常に見えます。問題はあなたがその関数を呼び出す場所かもしれません。 –
@LuiggiMendoza私は関数を使ってメソッドを意味すると思いますか?したがって、あるメソッドでこのコードを使用すると、別の場所で使用するのと異なるでしょうか?私はそれをメソッドの外でどのように使うことができますか? – Cin316
@ paulsm4 'System.out.print()'は読み込まれた文字を印刷するためのものですが、それを2度呼び出すと思われます。そうでない場合は、 'c o o l! 'の前に' t'が表示されます。 –