私はJAVAの初心者です。これは、このフォーラムでの最初の質問です。プロジェクト用の 16 進エディター ツールを開発しています。その一環として、テキスト ファイルを開いてその内容を読み取り、エディター領域に表示する小さなアプリケーションを作成する必要があります。次に、SHA-256 などの地図作成アルゴリズムを使用して、テキスト ファイル内のテキストのハッシュ値も生成する必要があります。インターネットで非常に役立つコードを見つけました。再利用に努めています。テキスト ファイルの内容をエディターに表示する際に行き詰まりました。コードは次のようになります。
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() のコードです `
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;
}
}
`