テキスト領域の内容をファイルに書き込むための単純な Java GUI プログラムを作成しました。
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.util.*;
import java.io.*;
public class Convert {
public static void main(String[] args) {
new MyFrame();
}
}
class MyFrame extends JFrame{
JPanel panel = new JPanel();
JButton button = new JButton("Convert");
JTextArea textArea = new JTextArea(500, 400);
String fileName = "result.txt";
MyFrame() {
super("converter");
setVisible(true);
setBounds(100, 100, 500, 500);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(panel);
panel.setLayout(null);
panel.add(button);
button.setLocation(0, 0);
button.setSize(this.getBounds().width, 100);
panel.add(textArea);
textArea.setEditable(true);
textArea.setLocation(0, 100);
textArea.setSize(this.getBounds().width, this.getBounds().height - 100);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
try {
File file = new File(fileName);
if (!file.exists()) {
file.createNewFile();
}
FileWriter fw = new FileWriter(file);
BufferedWriter bw = new BufferedWriter(fw);
String text = textArea.getText();
textArea.setText("");
Scanner scanner = new Scanner(text);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
byte[] utf8 = line.getBytes("UTF-8");
line = new String(utf8, "UTF-8");
bw.write(line);
System.out.println(line);
}
}
catch (Exception e) {
System.out.print(e.getMessage());
}
}
});
}
}
入力ソースは utf-8 (漢字) であり、正しく印刷できることに注意してください。ただし、result.txt ファイルは空です。bw.write("asdf") を試しても、まだ空です。