JAVA实验报告3 (2)

  • 格式:pdf
  • 大小:947.19 KB
  • 文档页数:10
public Student(String name,char sex,int age) {
= name; this.sex = sex; this.age = age; } public String getInfo() { return("姓名:" + name + "\t" + "性别:" + sex + "\t" + "年龄:" + age); } }
class MyPanel extends JPanel {
private JButton display;
// 显示单击计算器按钮的值和计算后的值
private JPanel panel; private double result; private String lastCommand; private boolean start;
运行结果
2、定义一个类,把这个类所生成的若干对象写入到文件中,然后从文件中 读出对象,测试读出对象的正确性。
import java.io.*; import java.util.*; class Student implements Serializable {
String name; char sex; int age;
{
String command = event.getActionCommand();
if (start)
{
if (command.equals("-"))
{
display.setText(command);
// 如果单击的是“-”按钮,说明
是负数
start = false;
}
else
lastCommand = command;
// 计算器面板 // 计算器的命令按钮
public MyPanel() {
setLayout(new BorderLayout()); result = 0; lastCommand = "="; start = true;
display = new JButton("0"); display.setEnabled(false); add(display, BorderLayout.NORTH); ActionListener insert = new InsertAction(); ActionListener command = new CommandAction(); 理器管理16个计算器按钮 panel = new JPanel(); panel.setLayout(new GridLayout(4, 4)); 计算器按钮 addButton("7", insert); 计算器面板上 addButton("8", insert); addButton("9", insert); addButton("/", command); addButton("4", insert); addButton("5", insert); addButton("6", insert); addButton("*", command); addButton("1", insert); addButton("2", insert); addButton("3", insert); addButton("-", command); addButton("0", insert); addButton(".", insert); addButton("=", command); addButton("+", command); add(panel, BorderLayout.CENTER); }
// 返回与此动作相关的命令字符串。
String input = event.getActionCommand(); if (start) {
display.setText(""); start = false; }
display.setText(display.getText() + input); 的计算器按钮的值
} }
// 显示单击
//*********依单击计算器上的内容执行命令********************
private class CommandAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
result *= x; else if (lastCommand.equals("/"))
result /= x; else if (lastCommand.equals("="))
result = x; display.setText("" + result); } }
public class Calculator {
Student s1; Student s2; FileInputStream fis = new FileInputStream("e:\\b.txt"); ObjectInputStream os = new ObjectInputStream(fis); s1 = (Student)os.readObject(); System.out.println(s1.getInfo()); s2 = (Student)os.readObject(); System.out.println(s2.getInfo()); } }
button.addActionListener(listener);
// 注册事件监听

panel.add(button);
}
// 设置 display的值为所单击的计算器按钮的值 private class InsertAction implements ActionListener {
public void actionPerformed(ActionEvent event) {
public class ObjectFile { public static void main(String[] args) throws Exception { /* Student s1 = new Student("Jack",'M',20); Student s2 = new Student("Jom",'M',25); FileOutputStream fos = new FileOutputStream("e:\\b.txt"); ObjectOutputStream os = new ObjectOutputStream(fos); os.writeObject(s1); os.writeObject(s2); os.close(); */
{ if(fis !=null)
fis.close(); if(fos !=null)
fos.close(); if(bis !=null)
bis.close(); if(bos !=null)
bos.close(); } catch(IOException e3) {
System.out.println(e3); } } } }
import java.awt.*; import java.awt.event.*; import javax.swing.*;
class MyFrame extends JFrame {
public MyFrame() {
setTitle("Calculator"); MyPanel panel = new MyPanel(); add(panel); pack(); } }
}
else{Fra bibliotek// 把字符串转换为Double类型并计算结果
calculate(Double.parseDouble(display.getText()));
lastCommand = command;
start = true;
}
}
}
// **********计算结果********************************
二 实验内容
1、编程利用文件流和缓冲流把一个文本文件中的内容复制到另外一个文件 中。
import java.io.*;
public class FileCopy {
public static void main(String[]args) {
FileInputStream fis = null; FileOutputStream fos = null; BufferedInputStream bis = null; BufferedOutputStream bos = null; int c; try {
运行结果
三 实验内容中遇到的问题、解决方法和体会。
问题: (1)利用文件流和缓冲流把一个文本文件中的内容复制到另外一个文件中
时,程序代码没有问题,可是实验结果却显示“找不到指定文件”; (2)输入流、输出流对应的到底是读是写还是有点搞不清,经常在使用时
两者搞混淆; 解决方法: (1)询问同学,才发现文件后缀名是.txt 时,里面的内容是被隐藏的,只
// 以网格布局管
// 在JPanel布局16个 // 把计算器按钮加到