用Java 写一个图书馆里系统,能够实现基本功能和输入输出流实现数据的读写,和ui界面
时间: 2024-03-27 15:36:38 浏览: 17
好的,我可以给您提供一个简单的Java图书馆管理系统的代码示例,它包含了基本的功能和使用输入输出流实现数据的读写,还有简单的UI界面。代码如下:
```
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import javax.swing.*;
public class LibrarySystem extends JFrame implements ActionListener {
private JTextField bookNameField, authorField, numField;
private JTextArea resultArea;
private JButton addButton, queryButton, clearButton;
public LibrarySystem() {
super("图书馆管理系统");
Container contentPane = getContentPane();
contentPane.setLayout(new BorderLayout());
JPanel inputPanel = new JPanel(new GridLayout(4, 2));
inputPanel.add(new JLabel("书名:"));
bookNameField = new JTextField();
inputPanel.add(bookNameField);
inputPanel.add(new JLabel("作者:"));
authorField = new JTextField();
inputPanel.add(authorField);
inputPanel.add(new JLabel("数量:"));
numField = new JTextField();
inputPanel.add(numField);
addButton = new JButton("添加");
addButton.addActionListener(this);
inputPanel.add(addButton);
queryButton = new JButton("查询");
queryButton.addActionListener(this);
inputPanel.add(queryButton);
clearButton = new JButton("清空");
clearButton.addActionListener(this);
inputPanel.add(clearButton);
contentPane.add(inputPanel, BorderLayout.NORTH);
resultArea = new JTextArea();
contentPane.add(new JScrollPane(resultArea), BorderLayout.CENTER);
setSize(400, 300);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new LibrarySystem();
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == addButton) {
addBook();
} else if (e.getSource() == queryButton) {
queryBook();
} else if (e.getSource() == clearButton) {
clearInput();
}
}
private void addBook() {
String bookName = bookNameField.getText();
String author = authorField.getText();
String numStr = numField.getText();
int num = Integer.parseInt(numStr);
try {
FileOutputStream fos = new FileOutputStream("books.txt", true);
OutputStreamWriter osw = new OutputStreamWriter(fos, "UTF-8");
BufferedWriter bw = new BufferedWriter(osw);
bw.write(bookName + "," + author + "," + num);
bw.newLine();
bw.close();
resultArea.append("添加成功!\n");
} catch (Exception e) {
resultArea.append("添加失败:" + e.getMessage() + "\n");
}
}
private void queryBook() {
String bookName = bookNameField.getText();
try {
FileInputStream fis = new FileInputStream("books.txt");
InputStreamReader isr = new InputStreamReader(fis, "UTF-8");
BufferedReader br = new BufferedReader(isr);
String line;
boolean found = false;
while ((line = br.readLine()) != null) {
String[] fields = line.split(",");
if (fields[0].equals(bookName)) {
resultArea.append(line + "\n");
found = true;
break;
}
}
br.close();
if (!found) {
resultArea.append("没有找到该书!\n");
}
} catch (Exception e) {
resultArea.append("查询失败:" + e.getMessage() + "\n");
}
}
private void clearInput() {
bookNameField.setText("");
authorField.setText("");
numField.setText("");
resultArea.setText("");
}
}
```
这个代码示例包含了一个简单的UI界面,可以通过添加、查询和清空按钮实现基本的图书馆管理功能。数据使用输入输出流实现读写,保存在本地文件中。注意,这个代码示例只是一个简单的演示,实际的图书馆管理系统需要更完善的功能和更健壮的代码。