私はJAVAの初心者です。これはこのフォーラムの最初の質問です。プロジェクトの16進エディタツールを開発中です。その一部として、テキストファイルを開いて内容を読み込んでエディタ領域に表示する小さなアプリケーションを作成する必要があります。次に、SHA-256などの地図作成アルゴリズムを使用して、テキストファイルのテキストのハッシュ値を生成する必要があります。私はそれを再利用しようとしています。私はテキストファイルの内容をエディタに表示することに立ち往生した。コードはこのようになります。文字列をJavaのwriteObject()に渡す文字列を渡しますか?
public Test() throws IOException {
// passes the number of array elements to the
// editor.
byte[] ar;
ar = new byte[16 * 16 * 100];
Arrays.fill(ar, (byte) 0);
ByteArrayOutputStream bos=new ByteArrayOutputStream();
ObjectOutputStream oos=new ObjectOutputStream(bos);
win = new JFrame("Hex Editor");
win.setSize(654, 473);
JButton btnOpenFile = new JButton("Open File");
btnOpenFile.setBounds(67, 38, 91, 23);
win.getContentPane().add(btnOpenFile);
btnOpenFile.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
Fileopener opener = new Fileopener();
//returns the string value through getpause() method.
System.out.println(opener.getPause());
}
});
oos.writeObject("kirandfasnvcxnz.,mvnmc,xznvmcxzmnvcmxzcccbnxz cz hajk vc jbcvj xbnzvc sbj cvxz,bcxjnzbcvjhs avcjz cxmzncvxz ");
ar=bos.toByteArray();
私はfileopenerのメソッドを別のクラスファイルとして定義しました。実行中にテキストファイルの内容が返されます。私の質問は、どのようにテキストファイルからこのメソッドに読み込まれている文字列値を渡す方法です。エディタに表示されるようにします。
oos.writeObject("kirandfasnvcxnz.,mvnmc,xznvmcxzmnvcmxzcccbnxz cz hajk vc jbcvj xbnzvc sbj cvxz,bcxjnzbcvjhs avcjz cxmzncvxz ");
エディタは、上記のコード行でコンテンツを表示しています。私は、読み込まれたテキストの文字列値を返すgetterメソッドを呼び出すことによってそれを実行しようとしました。これに使用した方法は、テキストファイルの内容を表示していない
oos.writeObject("Fileopener.getPause()");
です。代わりにエディタは、エディタ内のカッコ内に関数を表示しています(文字列として読み込まれていると思います)。あなたの助けを前もってありがとう。あなたのコードが書かれたとおりにある場合は、次のsgmorrison @ は、あなたが値"Fileopener.getPause()"
でwriteObject
に文字列を渡している(oos.writeObject("Fileopener.getPause()");
)Fileopenerのコード() `
package hexeditor;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import javax.swing.JFileChooser;
public class Fileopener {
static String pause;
/**
*
*/
public Fileopener() {
super();
// TODO Auto-generated constructor stub
JFileChooser chooser = new JFileChooser();
int returnVal = chooser.showOpenDialog(null);
StringBuffer contents = new StringBuffer();
BufferedReader inFile = null;
if (returnVal == JFileChooser.APPROVE_OPTION) {
File f = chooser.getSelectedFile();
try {
inFile = new BufferedReader(new FileReader(f));
String text = null;
while ((text = inFile.readLine()) != null) {
contents.append(text)
.append(System.getProperty(
"line.separator"));
}
}
catch (FileNotFoundException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
} finally {
try {
if (inFile != null) {
inFile.close();
}
} catch (IOException e1) {
e1.printStackTrace();
}
}
// show file contents here
pause = contents.toString();
setPause(pause);
}
}
public static String getPause() {
return pause;
}
public void setPause(String pause) {
this.pause = pause;
}
}
`
返信いただきありがとうございます。私はあなたの提案を最初に 'oos.writeObject(Fileopener.getPause());'で、エディタに何も表示しなかった引用符を使わずに試みました。この場合、結果は新しい文字列オブジェクトの作成であり、 'Fileopener.getNonExistentMethod()'はテキストを表示するのではなくエディタ領域に表示されますテキストファイルから読み込みます。 – kirankar
'oos.writeObject(Fileopener.getPause());'が表示されない場合、 'Fileopener.getPause()'は表示するテキストを返しません。このメソッドが返すものを調べてみてください。それ以上のことができない場合は、Fileopenerのコードを共有してください。 – sgmorrison
私はSystem.out.println(Fileopener.getPause())をインクルードして試しました。ヌルを返すコードで私がFileopenerのようにFileopener()のインスタンスを作成しようとしたときに、opener = new Fileopener(); System.out.println(opener.getPause());テキストファイルから読み込まれたテキストをコンソールに戻しています。質問にFileopener()のコードを含めました。 – kirankar