Advertisement
newm4n

UTF Safe and Read

Jan 30th, 2015
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 2.70 KB | None | 0 0
  1. package my.utf.test;
  2.  
  3. import javax.swing.*;
  4. import java.awt.*;
  5. import java.awt.event.ActionEvent;
  6. import java.awt.event.ActionListener;
  7. import java.io.*;
  8. import java.nio.charset.Charset;
  9.  
  10. /**
  11.  * Created by ferdinand on 1/30/15.
  12.  */
  13. public class SwingUTF8 {
  14.  
  15.     public static void main(String[] args) {
  16.         new SwingUTF8();
  17.     }
  18.  
  19.     private JTextField dfKoreanInput = new JTextField();
  20.     private JTextField dfKoreanOutput = new JTextField();
  21.     private JButton pbTest = new JButton("Test");
  22.  
  23.     public SwingUTF8() {
  24.         final JFrame mainFrame = new JFrame();
  25.         mainFrame.setTitle("UTF-Test");
  26.         mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  27.         JPanel panel = new JPanel();
  28.         panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5));
  29.         panel.setLayout(new FlowLayout());
  30.         panel.add(dfKoreanInput);
  31.         panel.add(dfKoreanOutput);
  32.         panel.add(pbTest);
  33.         pbTest.addActionListener(new ActionListener() {
  34.             @Override
  35.             public void actionPerformed(ActionEvent e) {
  36.                 try {
  37.                     saveData(dfKoreanInput.getText());
  38.                     dfKoreanOutput.setText(readData());
  39.                 } catch (IOException ioe) {
  40.                     JOptionPane.showMessageDialog(mainFrame, ioe.getMessage(), "Exception", JOptionPane.ERROR_MESSAGE);
  41.                 }
  42.             }
  43.         });
  44.         mainFrame.setContentPane(panel);
  45.  
  46.         dfKoreanInput.setPreferredSize(new Dimension(200,50));
  47.         dfKoreanOutput.setPreferredSize(new Dimension(200,50));
  48.         pbTest.setPreferredSize(new Dimension(200,50));
  49.  
  50.         mainFrame.pack();
  51.         mainFrame.setVisible(true);
  52.     }
  53.  
  54.     public void saveData(String data) throws IOException {
  55.         File file = new File("test.dat");
  56.         if(file.exists()) file.delete();
  57.         file.createNewFile();
  58.         FileOutputStream fos = new FileOutputStream(file);
  59.         fos.write(data.getBytes(Charset.forName("UTF-8")));
  60.         fos.flush();
  61.         fos.close();
  62.     }
  63.  
  64.     public String readData() throws IOException {
  65.         File file = new File("test.dat");
  66.         FileInputStream fis = new FileInputStream(file);
  67.         ByteArrayOutputStream baos = new ByteArrayOutputStream();
  68.         byte[] buffer = new byte[100];
  69.         int read = fis.read(buffer);
  70.         while(read >= 0) {
  71.             if(read > 0) {
  72.                 baos.write(buffer, 0, read);
  73.             }
  74.             read = fis.read(buffer);
  75.         }
  76.         try {
  77.             return new String(baos.toByteArray(), "UTF-8");
  78.         }
  79.         finally{
  80.             if(file.exists()) {
  81.                 file.delete();
  82.             }
  83.         }
  84.     }
  85.  
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement