1. Fragebeschreibung – Dateien bestimmter Typen finden
1. Frage
Frage: Im Betriebssystem werden verschiedene Dateitypen anhand ihrer Dateierweiterungen unterschieden dokumentieren. Listen Sie den Dateinamen, die Dateigröße und die Änderungszeit von Dateien dieses Typs im angegebenen Ordner basierend auf der vom Benutzer eingegebenen Erweiterung auf.
2. Ideen zur Problemlösung
Erstellen Sie eine Klasse: FilesList
Die FilesList-Klasse erbt JFrame und verwendet ein Formular als Schnittstelle.
Es gibt ein Eingabetextfeld zur Eingabe der Dateierweiterung
Nach dem Klicken ermittelt das Programm zunächst die eingegebene Dateierweiterung Ist es leer? Wenn es leer ist, geben Sie Folgendes ein: Bitte geben Sie den Dateityp ein. Wenn nicht leer, verwenden Sie die eingegebene Dateierweiterung, um die Dateien in dem vom Benutzer ausgewählten Ordner zu filtern und auf der Benutzeroberfläche anzuzeigen.
Die Filtermethode besteht darin, die listFiles-Methode der File-Klasse zu verwenden, um
3 zu filtern. 🎜🎜## 🎜🎜#
4. Erfahren Sie einen weiteren Wissenspunkt
Um eine Zeichenfolge in eine Kleinbuchstabenzeichenfolge umzuwandeln, können Sie die Funktion#🎜 verwenden 🎜#
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
*
Nach dem Login kopieren
* @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);// 更新表格模型
}
}
}#🎜 🎜#Verwendung
toLowerCase().
Nach dem Login kopieren
2. Fragebeschreibung – Baumstruktur zur Anzeige von Pfaden verwenden
1. Frage
Frage: Die Das Betriebssystem basiert hauptsächlich auf einer Baumstruktur zur Verwaltung von Dateien. Verwenden Sie die Baumsteuerung von JAVA, um die Dateistruktur anzuzeigen.
2. Ideen zur Problemlösung
Erstellen Sie eine Klasse: FilesTree
Die FilesList-Klasse erbt JFrame und verwendet das Formular als Schnittstelle.
Fügen Sie ein JTree-Steuerelement mit JFrame hinzu
Fügen Sie ein Systemdateistammverzeichnis für das JTree-Steuerelement hinzu
Das Systemdateistammverzeichnis kann mithilfe von listRoots( ) Methode von File .
3. Detaillierte Code-Erklärung
String fileType = "MD";
fileType = fileType.toLowerCase();//获取小写的字符串
Nach dem Login kopieren
Doppelklicken, um den Ordner zu erweitern
# 🎜🎜#
3. Fragebeschreibung – Dateiinhalt suchen und ersetzen
1. Frage
Titel: Um zu erkennen, dass Sie die Datei ersetzen können Inhalt, ohne die Datei zu öffnen.
2. Ideen zur Problemlösung
Erstellen Sie eine Klasse: ReplacementTool
Die Klasse „ReplaceTool“ erbt JFrame und verwendet das Formular als Schnittstelle.
Es gibt zwei Eingabefelder: die Zeichenfolge vor dem Ersetzen und die Zeichenfolge nach dem Ersetzen
Erstellen Sie eine Dateiauswahlschaltfläche, um auszuwählen, welche Datei ersetzt werden soll
Erstellen Sie eine Schaltfläche zum Ersetzen und Ersetzen entsprechend dem Inhalt des Eingabefelds
Die zum Ersetzen der Zeichenfolge verwendete Funktion ist die Ersetzungsmethode der String-Klasse
3 Erklärung
Verwenden Sie pom, um das htuool-Paket einzuführen, und verwenden Sie hauptsächlich diese Tool-Methode: IoUtil.read, mit der der Inhalt der Datei gelesen wird.
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
*
Nach dem Login kopieren
* @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;
}
}
}rreree#🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜##textinhalte vor dem Ersatz### 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜#### 🎜🎜#
Das obige ist der detaillierte Inhalt vonWie finde und ersetze ich Inhalte in einer Datei in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!