Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package my.utf.test;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.ActionEvent;
- import java.awt.event.ActionListener;
- import java.io.*;
- import java.nio.charset.Charset;
- /**
- * Created by ferdinand on 1/30/15.
- */
- public class SwingUTF8 {
- public static void main(String[] args) {
- new SwingUTF8();
- }
- private JTextField dfKoreanInput = new JTextField();
- private JTextField dfKoreanOutput = new JTextField();
- private JButton pbTest = new JButton("Test");
- public SwingUTF8() {
- final JFrame mainFrame = new JFrame();
- mainFrame.setTitle("UTF-Test");
- mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
- JPanel panel = new JPanel();
- panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
- panel.setLayout(new FlowLayout());
- panel.add(dfKoreanInput);
- panel.add(dfKoreanOutput);
- panel.add(pbTest);
- pbTest.addActionListener(new ActionListener() {
- @Override
- public void actionPerformed(ActionEvent e) {
- try {
- saveData(dfKoreanInput.getText());
- dfKoreanOutput.setText(readData());
- } catch (IOException ioe) {
- JOptionPane.showMessageDialog(mainFrame, ioe.getMessage(), "Exception", JOptionPane.ERROR_MESSAGE);
- }
- }
- });
- mainFrame.setContentPane(panel);
- dfKoreanInput.setPreferredSize(new Dimension(200,50));
- dfKoreanOutput.setPreferredSize(new Dimension(200,50));
- pbTest.setPreferredSize(new Dimension(200,50));
- mainFrame.pack();
- mainFrame.setVisible(true);
- }
- public void saveData(String data) throws IOException {
- File file = new File("test.dat");
- if(file.exists()) file.delete();
- file.createNewFile();
- FileOutputStream fos = new FileOutputStream(file);
- fos.write(data.getBytes(Charset.forName("UTF-8")));
- fos.flush();
- fos.close();
- }
- public String readData() throws IOException {
- File file = new File("test.dat");
- FileInputStream fis = new FileInputStream(file);
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- byte[] buffer = new byte[100];
- int read = fis.read(buffer);
- while(read >= 0) {
- if(read > 0) {
- baos.write(buffer, 0, read);
- }
- read = fis.read(buffer);
- }
- try {
- return new String(baos.toByteArray(), "UTF-8");
- }
- finally{
- if(file.exists()) {
- file.delete();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement