私はStreamCorruptedExceptionに関する多くの記事を見てきましたが、多くはサーバーアプリケーションと関係しています。 最初にオフにします。これは代入の一部ですが、動作しないコードは私の家庭教師が私に与えたコードです。私は他のすべてをしました!私はObjectInputStreamを使用している場合はが必要でした(これは私にナットを駆動しています)。私はEOFException、FileNotFound(.getPath()と.getName()を使用して)ファイル選択を使用していたStreamCorruptedException、TextFileからの読み込み(Java)
ObjectOutputStreamを使用してテキストファイルにデータを書き込むには?私はoosを使用するために私の保存メソッドを書き直し、それはテキストファイルに奇妙なアイコンを追加し、私は鋳造エラーを持っています。このためMY GUIのActionEvent方法で
* :*
openDiscsItm.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
fc = new JFileChooser();
fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
fc.addChoosableFileFilter(new FileChooserFilter());
int value = fc.showOpenDialog(MainForm.this);
try {
System.out.println("D: 1");
if(value == JFileChooser.APPROVE_OPTION);
{
System.out.println("D: 2");
File file = fc.getSelectedFile();
System.out.println("D: 3");
//String fileName = file.getPath();
store.loadDiscsArray(file);
System.out.println("D: 4");
changePnl.removeAll();
changePnl.add(create_CDPnl());
changePnl.revalidate();
}
} catch (Exception err) { System.out.println("STILL NOT WORKING :D"); }
}
});
MY SAVING/LOADINGクラスで
* *
public void saveDiscsArray(String fileName)
{
try
{
FileWriter fw = new FileWriter(fileName);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw);
out.println("Title,Artist");
for (int i = 0; i < discsArray.size(); i++)
{
CD c = discsArray.get(i);
String aTitle=c.getTitle();
String aArtist = c.getArtist();
out.println(aTitle+","+aArtist);
}
out.close();
bw.close();
fw.close();
} catch (Exception e)
{
System.out.println("Error: " + e);
}
}
public void loadDiscsArray(File fileName) throws IOException, ClassNotFoundException
{
try {
System.out.println("1");
BufferedInputStream br = new BufferedInputStream(new FileInputStream(fileName));
ObjectInputStream os = new ObjectInputStream(br);
System.out.println("2"); //Not Getting here *
try {
CD obj = (CD) os.readObject();
if (obj instanceof CD)
{ discsArray.add((CD) obj);
System.out.println(obj); }
} finally
{ os.close(); }
} catch (Exception ex)
{ System.out.println(ex); }
System.out.println("Done!");
}
私も場所を確認するために、いくつかのSOPを含めましたコードは実際に到達しています。 クラスはSerializableを実装していますが、私は正しいライターを閉じていることを確認しました。 ありがとう! :)
* EDIT - 使用するスキャナ
BufferedInputStream br = new BufferedInputStream(new FileInputStream(fileName));
Scanner sc = new Scanner(br);
System.out.println("2"); //Not Getting here *
try {
Object obj = sc.nextLine();
//if (obj instanceof CD)
discsArray.add((CD) obj);
System.out.println(obj);
} finally
{ sc.close(); }
今、私は文字列からCDにキャストエラーを取得しています。
しかし、どのように、私は適切に文字列をキャストしないCD(タイトル、アーティスト)に戻りました。キャストエラーが発生しています。 – liloka
ありがとうございました!最後に!!あなたは神を送ります。以前はスキャナを使用しましたが、テキストファイルは使用していません。 – liloka
問題はありませんが、残りのプログラムでは幸運です。 – Perception