私はこの宿題をしていて.txt
、整数で満たされたファイルをdouble
配列に読み込んでから、この二重配列を別の.txt
ファイルに書き込むことになっています。
.txt
最初は、ファイルを読み取って画像として表示し、sとしてファイルに保存できたので、すべてが機能していると思いましたdouble
。ただし、同じクラスファイルを別のレッスンで使用しようとすると(作成したフレームに表示する)、0.0
出力.txt
ファイルの値として取得し続けました。以下は、私の読み取りおよび書き込みクラスのコードです。
import java.io.*;
import java.util.*;
import java.awt.*;
import java.awt.event.*;
public class IO {
FileDialog fd;
public double[][] readData() {
fd = new FileDialog(new Frame(), "Open Files", FileDialog.LOAD);
fd.setVisible(true);
File f = null;
if ((fd.getDirectory() != null)||( fd.getFile() != null)) {
f = new File(fd.getDirectory() + fd.getFile());
}
FileReader fr = null;
try {
fr = new FileReader (f);
} catch (FileNotFoundException fnfe) {
fnfe.printStackTrace();
}
BufferedReader br = new BufferedReader(fr);
int lines = -1;
String textIn = " ";
String[] file = null;
try {
while (textIn != null) {
textIn = br.readLine();
lines++;
}
file = new String[lines];
fr = new FileReader (f);
br = new BufferedReader(fr);
for (int i = 0; i < lines; i++) {
file[i] = br.readLine();
}
br.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
double[][] data = new double [lines][];
for (int i = 0; i < lines; i++) {
StringTokenizer st = new StringTokenizer(file[i],",");
data[i] = new double[st.countTokens()];
int j = 0;
while (st.hasMoreTokens()) {
data[i][j] = Double.parseDouble(st.nextToken());
j++;
}
}
return data;
}
public void writeData(double[][] dataIn) {
fd = new FileDialog(new Frame(), "Save Files", FileDialog.SAVE);
fd.setVisible(true);
File f = null;
if ((fd.getDirectory() != null)||( fd.getFile() != null)) {
f = new File(fd.getDirectory() + fd.getFile());
}
FileWriter fw = null;
try {
fw = new FileWriter (f, true);
} catch (IOException ioe) {
ioe.printStackTrace();
}
BufferedWriter bw = new BufferedWriter (fw);
String tempStr = "";
try {
for (int i = 0; i < dataIn.length; i++) {
for (int j = 0; j < dataIn[i].length; j++) {
tempStr = String.valueOf(dataIn[i][j]);
bw.write(tempStr);
}
bw.newLine();
}
bw.close();
} catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
私が読み込もうとしているtxtファイルには300行と列がありますが、すべての列がint番号でいっぱいになっているわけではありません。入力txtをDisplayにすることはできましたが、同じ値でintではなくdoubleのtxtファイルとして保存することはできませんでした。
誰かがここで私を助けてくれませんか?