자바 텍스트 내용 교체 기능 예제 찾기

10393 단어 자바텍스트
생각:
먼저 그림 을 보 려 면 JButton 컨트롤 러 가 파일 을 선택 하 는 데 사 용 됩 니 다.JTextField 컨트롤 러 는 선택 한 파일 의 절대 경 로 를 표시 합 니 다.JLabel 컨트롤 러 는 사용자 에 게 검색 텍스트 를 입력 하 라 고 알려 줍 니 다.JLabel 컨트롤 러 는 사용자 에 게 교 체 된 텍스트 를 입력 하 라 고 알려 줍 니 다.JTextField 탭 은 사용자 가 검색 할 텍스트 를 입력 할 수 있 도록 합 니 다.JTextField 탭 은 사용자 가 교 체 된 텍스트 를 입력 할 수 있 도록 합 니 다.JButton 컨트롤 이 바 뀌 었 습 니 다.JButton 컨트롤 은 수 정 된 파일 을 여 는 데 사 용 됩 니 다.파일 단 추 를 선택 할 때 JButton 류 의 addActionListener()방법 으로 이 벤트 를 연결 합 니 다.이 이벤트 에서 actionPerformed()함 수 를 정의 하고 이 함수 체 에서 파일 을 선택 하 는 방법 을 호출 합 니 다.파일 선택 방법 에서 먼저 JFileChooser 파일 선택 기 를 만 들 고 JFileChooser 류 의 setFileFilter()방법 으로 파일 확장자 필 터 를 만 든 다음 JFileChooser 류 의 setFileSelectionMode()방법 으로 파일 선택 모드 를 파일 로 설정 하고 JFileChooser 류 의 showOpenDialog()방법 으로 파일 열기 대화 상 자 를 표시 합 니 다.취소 단추 가 아 닌 열기 단 추 를 눌 렀 는 지 확인 한 후 JFileChooser 류 의 getSelected File()방법 으로 사용자 가 선택 한 파일 대상 을 가 져 오고 JTextField 류 의 setText()방법 으로 파일 정 보 를 텍스트 상자 에 표시 합 니 다.교체 단추 에 대해 서 는 파일 단 추 를 선택 하고 JButton 류 의 addAction Listener()방법 으로 이 벤트 를 연결 합 니 다.이 이벤트 에서 actionPerformed()함 수 를 정의 하고 이 함수 체 에서 텍스트 를 바 꾸 는 방법 을 호출 합 니 다.텍스트 를 바 꾸 는 방법 에 서 는 먼저 TextField 류 의 getText()방법 으로 검색 할 텍스트 와 바 꿀 텍스트 를 가 져 옵 니 다.텍스트 가 비어 있 지 않 으 면 FileReader 파일 입력 흐름 과 char 버퍼 문자 배열,StringBuilder 문자열 구축 기 를 만 들 고 while()순환 에서 FileReader 류 의 read()방법 으로 문자열 구축 기 에 파일 내용 을 읽 습 니 다.읽 기 가 끝 난 후 FileReader 류 의 close()방법 으로 입력 흐름 을 닫 고 StringBuilder 류 의 replace()방법 으로 빌 더 에서 문자열 을 생 성하 고 검색 텍스트 를 교체 한 다음 FileWriter 파일 출력 흐름 을 만 들 고,FileWriter 류 의 write()방법 으로 교 체 된 문자열 을 파일 에 기록 한 다음 FileWriter 류 의 close()방법 으로 출력 흐름 을 닫 습 니 다.그 다음 에 FileNotFoundException 이상 과 IOException 이상 을 차례대로 캡 처 하고 마지막 으로 JOptionPane 류 의 showMessageDialog()방법 으로 사용자 의 교체 가 완료 되 었 음 을 알려 줍 니 다.파일 열기 단 추 를 누 르 면 JButton 류 의 addActionListener()방법 으로 이 벤트 를 연결 합 니 다.이 이벤트 에서 actionPerformed()함 수 를 정의 하고 이 함수 체 에서 파일 을 여 는 방법 을 호출 합 니 다.파일 을 여 는 방법 에서 Desktop.getDesktop().edit(file)를 사용 하려 고 시도 합 니 다.IOException 이상 을 포착 합 니 다.코드 는 다음 과 같 습 니 다:

import java.awt.BorderLayout;

public class ReplaceFileText extends JFrame {

    /**
     *
     */
    private static final long serialVersionUID = 8674569541853793419L;
    private JPanel contentPane;
    private JTextField fileField;
    private JTextField searchTextField;
    private JTextField replaceTextField;
    private File file;

    /**
     * Launch the application.
     */
    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {
            public void run() {
                try {
                    ReplaceFileText frame = new ReplaceFileText();
                    frame.setVisible(true);
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        });
    }

    /**
     * Create the frame.
     */
    public ReplaceFileText() {
        setResizable(false);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 501, 184);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JPanel panel = new JPanel();
        panel.setPreferredSize(new Dimension(10, 91));
        contentPane.add(panel, BorderLayout.CENTER);
        GridBagLayout gbl_panel = new GridBagLayout();
        gbl_panel.columnWidths = new int[] { 81, 0, 0, 66, 0 };
        gbl_panel.rowHeights = new int[] { 23, 0, 0, 0, 0 };
        gbl_panel.columnWeights = new double[] { 0.0, 0.0, 0.0, 1.0,
                Double.MIN_VALUE };
        gbl_panel.rowWeights = new double[] { 0.0, 0.0, 0.0, 0.0,
                Double.MIN_VALUE };
        panel.setLayout(gbl_panel);

        JButton button = new JButton(" ");
        button.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                do_button_actionPerformed(e);
            }
        });
        GridBagConstraints gbc_button = new GridBagConstraints();
        gbc_button.anchor = GridBagConstraints.NORTHWEST;
        gbc_button.insets = new Insets(0, 0, 5, 5);
        gbc_button.gridx = 0;
        gbc_button.gridy = 0;
        panel.add(button, gbc_button);

        fileField = new JTextField();
        fileField.setEditable(false);
        GridBagConstraints gbc_fileField = new GridBagConstraints();
        gbc_fileField.gridwidth = 3;
        gbc_fileField.insets = new Insets(0, 0, 5, 0);
        gbc_fileField.fill = GridBagConstraints.HORIZONTAL;
        gbc_fileField.gridx = 1;
        gbc_fileField.gridy = 0;
        panel.add(fileField, gbc_fileField);
        fileField.setColumns(10);

        JLabel label = new JLabel(" :");
        GridBagConstraints gbc_label = new GridBagConstraints();
        gbc_label.anchor = GridBagConstraints.EAST;
        gbc_label.insets = new Insets(0, 0, 5, 5);
        gbc_label.gridx = 0;
        gbc_label.gridy = 1;
        panel.add(label, gbc_label);

        searchTextField = new JTextField();
        GridBagConstraints gbc_searchTextField = new GridBagConstraints();
        gbc_searchTextField.gridwidth = 3;
        gbc_searchTextField.insets = new Insets(0, 0, 5, 0);
        gbc_searchTextField.fill = GridBagConstraints.HORIZONTAL;
        gbc_searchTextField.gridx = 1;
        gbc_searchTextField.gridy = 1;
        panel.add(searchTextField, gbc_searchTextField);
        searchTextField.setColumns(10);

        JLabel label_1 = new JLabel(" :");
        GridBagConstraints gbc_label_1 = new GridBagConstraints();
        gbc_label_1.anchor = GridBagConstraints.EAST;
        gbc_label_1.insets = new Insets(0, 0, 5, 5);
        gbc_label_1.gridx = 0;
        gbc_label_1.gridy = 2;
        panel.add(label_1, gbc_label_1);

        replaceTextField = new JTextField();
        GridBagConstraints gbc_replaceTextField = new GridBagConstraints();
        gbc_replaceTextField.gridwidth = 3;
        gbc_replaceTextField.insets = new Insets(0, 0, 5, 0);
        gbc_replaceTextField.fill = GridBagConstraints.HORIZONTAL;
        gbc_replaceTextField.gridx = 1;
        gbc_replaceTextField.gridy = 2;
        panel.add(replaceTextField, gbc_replaceTextField);
        replaceTextField.setColumns(10);

        JPanel panel_1 = new JPanel();
        GridBagConstraints gbc_panel_1 = new GridBagConstraints();
        gbc_panel_1.gridwidth = 4;
        gbc_panel_1.fill = GridBagConstraints.BOTH;
        gbc_panel_1.gridx = 0;
        gbc_panel_1.gridy = 3;
        panel.add(panel_1, gbc_panel_1);

        JButton replaceButton = new JButton(" ");
        replaceButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                do_replaceButton_actionPerformed(e);
            }
        });
        panel_1.add(replaceButton);

        JButton openfileButton = new JButton(" ");
        openfileButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                do_button_2_actionPerformed(e);
            }
        });
        panel_1.add(openfileButton);
    }

    /**
     *
     *
     * @param e
     */
    protected void do_button_actionPerformed(ActionEvent e) {
        JFileChooser chooser = new JFileChooser("./");//
        //
        chooser.setFileFilter(new FileNameExtensionFilter(" ", "txt",
                "java", "php", "html", "htm"));
        //
        chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
        //
        int option = chooser.showOpenDialog(this);
        // ,
        if (option != JFileChooser.APPROVE_OPTION)
            return;
        //
        file = chooser.getSelectedFile();
        //
        fileField.setText(file.toString());
    }

    /**
     *
     *
     * @param e
     */
    protected void do_replaceButton_actionPerformed(ActionEvent event) {
        String searchText = searchTextField.getText();//
        String replaceText = replaceTextField.getText();//
        if (searchText.isEmpty())
            return;
        try {
            FileReader fis = new FileReader(file);//
            char[] data = new char[1024];//
            int rn = 0;
            StringBuilder sb = new StringBuilder();//
            while ((rn = fis.read(data)) > 0) {//
                String str = String.valueOf(data, 0, rn);
                sb.append(str);
            }
            fis.close();//
            // ,
            String str = sb.toString().replace(searchText, replaceText);
            FileWriter fout = new FileWriter(file);//
            fout.write(str.toCharArray());//
            fout.close();//
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        JOptionPane.showMessageDialog(null, " ");
    }

    /**
     * 。
     *
     * @param e
     */
    protected void do_button_2_actionPerformed(ActionEvent e) {
        try {
            if (file == null)
                return;
            Desktop.getDesktop().edit(file);
        } catch (IOException e1) {
            e1.printStackTrace();
        }
    }
}

좋은 웹페이지 즐겨찾기