Java でファイル内のコンテンツを検索して置換するにはどうすればよいですか?

WBOY
リリース: 2023-04-20 22:31:07
転載
1147 人が閲覧しました

1. 質問の説明 - 指定された種類のファイルの検索

1. 質問

タイトル: オペレーティング システムでは、さまざまな種類のファイルはファイル拡張子によって区別されます。ユーザーが入力した拡張子に基づいて、指定したフォルダー内のこのタイプのファイルのファイル名、ファイル サイズ、および変更時刻を一覧表示します。

2. 問題解決のアイデア

クラスを作成します: FilesList

FilesList クラスは JFrame を継承し、インターフェイスとしてフォームを使用します。

ファイル拡張子を入力するための入力テキスト ボックスがあります。

「フォルダーの選択」ボタンがあります。クリックすると、プログラムはまず、入力されたファイル拡張子が空かどうかを判断します。は空です。プロンプト: ファイルの種類を入力してください。空でない場合は、入力したファイル拡張子を使用して、ユーザーが選択したフォルダー内のファイルをフィルターし、インターフェイスに表示します。

フィルタリング方法は、File クラスの listFiles メソッドを使用して

3 をフィルタリングすることです。詳細なコードの説明

package com.xiaoxuzhu;
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.JTableHeader;
/**
 * Description: 
 *
 * @author xiaoxuzhu
 * @version 1.0
 *
 * <pre class="brush:php;toolbar:false">
 * 修改记录:
 * 修改后版本	        修改人		修改日期			修改内容
 * 2022/5/2.1	    xiaoxuzhu		2022/5/2		    Create
 * 
ログイン後にコピー
* @date 2022/5/2 */ public class FilesList extends JFrame { /** * */ private static final long serialVersionUID = -2029566581047632579L; private JPanel contentPane; private JTextField textField; private JTable table; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { FilesList frame = new FilesList(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public FilesList() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); JPanel panel = new JPanel(); contentPane.add(panel, BorderLayout.NORTH); JLabel label = new JLabel("输入文件扩展名:"); label.setFont(new Font("微软雅黑", Font.PLAIN, 15)); panel.add(label); textField = new JTextField(); textField.setFont(new Font("微软雅黑", Font.PLAIN, 15)); panel.add(textField); textField.setColumns(12); JButton button = new JButton("选择文件夹"); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { do_button_actionPerformed(e); } }); button.setFont(new Font("微软雅黑", Font.PLAIN, 15)); panel.add(button); JScrollPane scrollPane = new JScrollPane(); contentPane.add(scrollPane, BorderLayout.CENTER); table = new JTable(); JTableHeader header = table.getTableHeader(); header.setFont(new Font("微软雅黑", Font.PLAIN, 15)); header.setPreferredSize(new Dimension(header.getWidth(), 25));// 修改表头的高度 table.setFont(new Font("微软雅黑", Font.PLAIN, 13)); table.setRowHeight(25); DefaultTableModel model = (DefaultTableModel) table.getModel(); model.setColumnIdentifiers(new String[] { "文件名", "文件大小", "修改时间" }); scrollPane.setViewportView(table); } protected void do_button_actionPerformed(ActionEvent e) { final String fileType = textField.getText();// 获得用户输入的文件类型 if (fileType.isEmpty()) {// 提示用户输入文件类型 JOptionPane.showMessageDialog(this, "请输入文件类型!", "", JOptionPane.WARNING_MESSAGE); return; } JFileChooser chooser = new JFileChooser();// 创建文件选择器 chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);// 设置仅能选择文件夹 chooser.setMultiSelectionEnabled(false);// 禁止选择多个文件夹 int result = chooser.showOpenDialog(this);// 打开文件选择器 if (result == JFileChooser.APPROVE_OPTION) { File[] listFiles = chooser.getSelectedFile().listFiles(new java.io.FileFilter() { @Override public boolean accept(File pathname) { if (pathname.getName().toLowerCase().endsWith(fileType.toLowerCase())) { return true; } else { return false; } } });// 获得符合条件的文件 table.removeAll(); DefaultTableModel model = (DefaultTableModel) table.getModel();// 获得默认表格模型 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 指定日期格式 for (File file : listFiles) { String name = file.getName();// 获得文件名 long size = file.length();// 获得文件大小 String modifyDate = format.format(new Date(file.lastModified()));// 获得文件修改日期 model.addRow(new String[] { name, "" + size, modifyDate });// 向表格中增加数据 } table.setModel(model);// 更新表格模型 } } }

Java でファイル内のコンテンツを検索して置換するにはどうすればよいですか?

Java でファイル内のコンテンツを検索して置換するにはどうすればよいですか?

#4. もう 1 つの知識ポイントを学びましょう

文字列を小文字の文字列に変更するには、関数

toLowerCase().
ログイン後にコピー

Usage

String fileType = "MD";
fileType = fileType.toLowerCase();//获取小写的字符串
ログイン後にコピー

2 を使用できます。 . 質問の説明 - ツリー構造の表示パスを使用する

1. 質問

質問: オペレーティング システムは主にツリー構造でファイルを管理します。ファイル構造を表示するには、JAVA のツリー コントロールを使用します。

2. 問題解決のアイデア

クラスを作成します: FilesTree

FilesList クラスは JFrame を継承し、インターフェイスとしてフォームを使用します。

JFrame を使用して JTree コントロールを追加する

JTree コントロールのシステム ファイル ルートを追加する

システム ファイル ルートは、File の listRoots() メソッドを使用して取得できます。

3. コードの詳細説明

package com.xiaoxuzhu;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.io.File;
import java.io.FileFilter;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTree;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.event.TreeSelectionListener;
import javax.swing.event.TreeSelectionEvent;
/**
 * Description: 
 *
 * @author xiaoxuzhu
 * @version 1.0
 *
 * <pre class="brush:php;toolbar:false">
 * 修改记录:
 * 修改后版本	        修改人		修改日期			修改内容
 * 2022/5/2.1	    xiaoxuzhu		2022/5/2		    Create
 * 
ログイン後にコピー
* @date 2022/5/2 */ public class FilesTree extends JFrame { /** * */ private static final long serialVersionUID = -2055459510450224221L; private JPanel contentPane; private JTree tree; /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { FilesTree frame = new FilesTree(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public FilesTree() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); JScrollPane scrollPane = new JScrollPane(); contentPane.add(scrollPane, BorderLayout.CENTER); File[] disks = File.listRoots();// 获得所有可用的文件系统根 DefaultMutableTreeNode root = new DefaultMutableTreeNode();// 创建节点 for (File disk : disks) {// 将File数组中的元素增加到节点上 root.add(new DefaultMutableTreeNode(disk)); } tree = new JTree(root);// 使用节点创建树控件 tree.addTreeSelectionListener(new TreeSelectionListener() { public void valueChanged(TreeSelectionEvent e) { do_tree_valueChanged(e); } }); scrollPane.setViewportView(tree); } protected void do_tree_valueChanged(TreeSelectionEvent e) { // 获得用户选择的节点 DefaultMutableTreeNode selectNode = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent(); File selectFile = (File) selectNode.getUserObject();// 获得节点代表的File类型对象 if (selectFile.isDirectory()) {// 如果File类型对象是文件夹 File[] files = selectFile.listFiles(new FileFilter() { @Override public boolean accept(File pathname) {// 过滤掉隐藏类型文件 if (pathname.isHidden()) { return false; } else { return true; } } }); for (File file : files) {// 将符合条件的File类型对象增加到用户选择的节点中 selectNode.add(new DefaultMutableTreeNode(file)); } } else { return; } } }

Java でファイル内のコンテンツを検索して置換するにはどうすればよいですか?

ダブルクリックしてフォルダーを展開します

Java でファイル内のコンテンツを検索して置換するにはどうすればよいですか?

3 . 質問の説明 - ファイルの内容の検索と置換

1. 質問

質問: ファイルを開かずにファイルの内容を置換できます。

2. 問題解決のアイデア

クラスを作成します: ReplaceTool

ReplaceTool クラスは JFrame を継承し、インターフェイスとしてフォームを使用します。

入力ボックスは 2 つあります: 置換前の文字列と置換後の文字列です。

置換するファイルを選択するファイル選択ボタンを作成します。

置換開始ボタンを作成します。入力ボックスの内容に応じて置換

文字列を置換する関数は String クラスの replace メソッドです

3. コードの詳細説明

pom とhtuool パッケージを導入します。主にこのツール メソッドを使用します: IoUtil.read、ファイルの内容を読み取るために使用されます。

rrreerrree

Java でファイル内のコンテンツを検索して置換するにはどうすればよいですか?

置換前のテキスト内容

Java でファイル内のコンテンツを検索して置換するにはどうすればよいですか?

Java でファイル内のコンテンツを検索して置換するにはどうすればよいですか?

Java でファイル内のコンテンツを検索して置換するにはどうすればよいですか?

Java でファイル内のコンテンツを検索して置換するにはどうすればよいですか?

以上がJava でファイル内のコンテンツを検索して置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:yisu.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!