私は、NXT でファジー ロジックを使用してコントローラーを実装することになっている AI プロジェクトに取り組んでいます。私の制御戦略を適切に評価するために、カラーセンサーによって測定された情報とモーターに送信されているデータを追跡する必要があります。このために、いくつかの同様の情報を .txt ファイルに書き込む簡単なコードを実装しようとしていました。これが私がこれまでに達成したことです:
import java.io.*;
import lejos.nxt.*;
public class DataLogger {
public static void main(String[] args) {
int count = 0;
FileOutputStream fileStream = null;
try {
fileStream = new FileOutputStream(new File("Test.txt"));
} catch (Exception e) {
LCD.drawString("Can't make a file", 0, 0);
System.exit(1);
}
DataOutputStream dataStream = new DataOutputStream(fileStream);
do {
try {
dataStream.writeChars(String.valueOf(count));
fileStream.flush();
count++;
} catch (IOException e) {
LCD.drawString("Can't write to the file", 0, 1);
System.exit(1);
}
} while (count < 100);
try {
fileStream.close();
} catch (IOException e) {
LCD.drawString("Can't save the file", 0, 1);
System.exit(1);
}
}
}
このコードでは、基本的に 0 から 99 までの数字を Test.txt というファイルに書き込もうとしています。理由はわかりませんが、プログラムは次のようにデータを書き込んでいます。
0 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 ...
ご覧のとおり、すべての桁の間に空白を追加しています。私はすでに DataOutputStream の多くの書き込み方法を試しましたdataStream.writeChars(String.valueOf(count));
が、「最も成功した」方法でした ( writeInt(int b)
ASCII テーブルに従ってデータを書き込むような他の方法)。BufferedOutputStream クラスも使用しようとしましたが、成功しませんでした。私が間違っている可能性があるのは何ですか?