자바 텍스트 내용 교체 기능 예제 찾기
먼저 그림 을 보 려 면 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();
}
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.