精品文档-Java程序设计项目化教程(陈芸)-第10章

合集下载

《Java语言程序设计实验指导》电子教案第10章

《Java语言程序设计实验指导》电子教案第10章
《Java语言程序设计实验 指导》电子教案第10章
通过第10章的学习,您将深入了解Java图形界面编程(Swing)的核心概念 和技巧,掌握开发各种交互式界面应用程序的能力。
Swing介绍和特点
深入了解Swing框架的特点和优势,学习如何利用Swing创建漂亮和交互式的用户界面。
Swing组成部分
了解Swing框架的基本组成部分,包括容器组件、控制组件、面板组件和边框组件。
Swing程序结构
学习如何构建一个典型的Swing应用程序,包括创建主框架、添加组件和处理板、标签、文本框和按钮,以及它们的用法和特性。
基本控件组件
学习如何使用复选框、单选框、列表框和组合框等基本控件组件,为用户提供更丰富的交互选择。
布局管理器
掌握Swing中常用的布局管理器,如流布局、网格布局和边界布局,以实现灵 活而美观的界面布局。
事件处理机制
了解Swing中的事件处理机制,并学习如何响应用户的操作、处理鼠标和键盘 事件。

《Java程序设计教程(第2版)》课件 第10章

《Java程序设计教程(第2版)》课件 第10章

处于运行状态的线程 如果因为某种原因不 能继续执行,就进入 阻塞状态。
处于就绪状态的线 程获得CPU资源后 即处于运行状态。
当线程执行完run()方法中的 内容或被强制终止时,则处 于死亡状态。至此,线程的 生命周期结束。
线程的控制
目录
CONTENTS
01
线程的优先级
02
线程休眠
03
线程等待
04
该线程。
3
线程等待
线程等待
案例描述 模拟课堂:老师讲课时提出问题,学生回答,回答完毕后老师继续讲课。 问题分析: ➢ 定义线程类Student继承Thread类,在重写的run()方法中输出“学生回答问题3
2
线程休眠
线程休眠
案例描述 模拟红绿灯:红灯亮10 s,绿灯亮10 s,黄灯亮2 s。
问题分析: ➢ 定义线程类TrafficSignal继承Thread类。 ➢ 在重写的run()方法中循环输出“红灯亮”“绿灯亮”和“黄灯亮”,并
使用sleep()方法限制灯亮的时间。 ➢ 在公共类的main()方法中创建TrafficSignal类对象,并调用start()方法启动
}
}
实现Runnable接口
2.创建与启动线程
首先基于定义的线程类创建对象,然后将该对象作为Thread类构造方法的 参数,创建Thread类对象,最后通过Thread类对象调用start()方法启动线程。
案例: ➢ 定义MyThread类实现Runnable接口,在其中重写run()方法,实现循环10次,
继承Thread类
1.Thread类
Thread类常用的方法:
方法 Thread currentThread()

java课程设计项目

java课程设计项目

java课程设计项目一、教学目标本章节的教学目标包括以下三个方面:1.知识目标:使学生掌握Java编程语言的基本语法、数据类型、控制结构、面向对象编程等基础知识。

2.技能目标:培养学生具备使用Java语言进行程序设计的能力,能够独立完成简单的Java项目。

3.情感态度价值观目标:培养学生对计算机科学的兴趣,提高学生的问题解决能力和创新意识。

二、教学内容本章节的教学内容主要包括以下几个部分:1.Java语言概述:介绍Java语言的发展历程、特点和应用领域。

2.基本语法:讲解Java语言的基本语法规则,包括数据类型、变量、运算符等。

3.控制结构:学习Java语言的条件语句和循环语句,以及相关的算法。

4.面向对象编程:介绍类和对象的概念,学习封装、继承和多态等面向对象的特性。

5.常用类库:学习Java语言常用的类库,如String类、数学类、日期类等。

6.异常处理:讲解异常的概念和处理机制,学习使用try-catch语句进行异常处理。

7.文件操作:学习Java语言的文件操作API,包括文件的创建、读写、关闭等。

8.编程实践:通过实际项目案例,使学生综合运用所学知识解决实际问题。

三、教学方法为了提高教学效果,本章节将采用以下几种教学方法:1.讲授法:教师讲解Java语言的基本概念和语法规则,引导学生理解并掌握相关知识。

2.案例分析法:通过分析实际项目案例,使学生了解Java语言在实际应用中的编程技巧和方法。

3.实验法:安排实验室实践环节,让学生动手编写Java程序,培养学生的实际编程能力。

4.讨论法:学生进行小组讨论,分享学习心得和解决问题的方法,提高学生的合作能力。

四、教学资源为了支持本章节的教学,我们将准备以下教学资源:1.教材:选择权威、实用的Java编程教材,为学生提供系统的学习资料。

2.参考书:提供相关的Java编程参考书籍,丰富学生的知识体系。

3.多媒体资料:制作PPT、视频等多媒体教学资料,增强课堂的趣味性。

java第10章

java第10章

窗内网,免费看视频,轻松学编程

现在有一个程序需要获取数据,可以把程序作为一个对 象来看,而存放数据的文件看作一个对象,两个对象之间要 传递数据,需要在两个对象之间建立一个管道,管道建好之 后,数据就可以如水流一样从数据源向目的地流动。这里存 放数据的文件是一个广义的概念,它可以代表具体的文件、 内存、网络等。示意图如图10-4所示:

窗内网,免费看视频,轻松学编程
FileOutputStream(文件输出流)类是将数据写 入File或 FileDescriptor对象的输出流。它的方 法大都是从OutputStream继承来的,其构造方 法如下: FileOutputStream(File file) 创建输出流写到 特定的file对象。 FileOutputStream(File file, boolean append) 以追加的方式写入file对象。
窗内网,免费看视频,轻松学编程


控制指针移动的方法。
public
long getFilePointer():获取当前指针指向 文件的位置。 public void seek(long pos):将指针移动到参 数pos指定的位置。 public int skipBytes(int n):指针从当前位置向 后移动n个字节位置,并返回指针实际移动的 字节数。

窗内网,免费看视频,轻松学编程

1.RandomAccessFile的构造函数:
public
RandomAccessFile(File file,String mode); public RandomAccessFile(String name,String mode); mode表示访问方式的字符串,取值为“r”是以 只读的方式打开文件;取值为“rw”是以读写方 式打开文件。

精品文档-Java程序设计项目化教程(陈芸)-第8章

精品文档-Java程序设计项目化教程(陈芸)-第8章

第8章 任务8——处理登录界面中的事件
8.2.1 动作事件(ActionEvent类) 当用户按下按钮组件(JButton)、双击列表(JList)中的
选项、选择菜单项(JMenuItem),或是在文本框(JTextField) 或文本区(TextArea)输入文字后按下【Enter】键的同时,即 触发了动作事件。此时,触发事件的组件将ActionEvent类的 对象传送给向它注册的监听器ActionListener,由Action Listener负责启动并执行相关代码来处理这个事件。
MouseMotionListener
WindowsListener
事件监听器委派的事件处理者 actionPerformed(ActionEvent e) itemStateChanged(ItemEvent e) textValueChanged(TextEvent e) keyType(KeyEvent e) keyPressed(KeyEvent e) keyRelease(KeyEvent e) focusGained(FocusEvent e) focusLost(FocusEvent e) mouseClicked(MouseEvent e) mouseEntered(MouseEvent e) mousExited(MouseEvent e) mousePressed(MouseEvent e) mouseReleased(MouseEvent e) mouseDragged(MouseEvent e) mouseMoved(MouseEvent e) windowsClosing(WindowsEvent e) windowsOpen(WindowsEvent e) windowsConified(WindowsEvent e) windowsDeiconified(WindowsEvent e) windowsClosed(WindowsEvent e) windowsActivated(WindowsEvent e) windowsDeactivated(WindowsEvent e)

Java程序设计项目化教程

Java程序设计项目化教程

类的基本格式
类名:符合标识符 定义,通常首字母 class 关键字 大写
类定义的语法格式
[public][abstract][final] class 类名 [extends 类体 父类名 ] [implements 接口1,接口2,……] :类的定义部分
{ }
变量声明; 方法声明;
良好的编程习惯
方法的调用
◢ 方法调用
▼ 定义好的方法,就可以通过调用语法来执行。在同一个类中调用 方法,可以直接使用如下的格式来调用方法。调用不同类的方法, 或者对不同包的类的方法访问,将受制于方法的修饰符。
方法调用栈
静态方法
◢ 静态方法
▼ 又称:工具方法。该方法不需要操作对象的状 态。只接收用户参数,并对这些参数进行处理, 然后返回一个值 ▼ 工具方法是全局的,任何客户编写的代码都可 以访问它。 ▼ 实现时,在方法签名部分增加static 修饰符
UML 类图使用一个由三行组成的矩形来表现类。 在矩形的第一行,显示类的名字;第二行显示 + + 类的属性(attribute),属性定义了类的数据 + 特征;第三行显示类的行为,行为由类的方法 (method)构成。
◢ 使用UML表示实例
classBegin:Time classOver:Time
语法格式
引用变量.属性名
创建/访问类的实例(参考)
扩展:类的成员访问语法
方法
◢ 简介
▼ 方法的主要作用就是对类中定义的状态数据进行操作和处理。换 句话说,方法可以改变对象的状态。此外,还有一些特殊用途的 方法(随后章节会介绍)。 ▼ 方法总是从属于某个特定的类,是类的成员
良好的编程习惯
把方法设计成:要么改变对象的状态,要么返回信息,不要两件事都做。

精品文档-Java程序设计项目化教程(陈芸)-第3章

精品文档-Java程序设计项目化教程(陈芸)-第3章

第3章 任务3——创建考试系统中的试题类
2.面向对象的编程思想 面向过程的程序设计,例如C程序设计采用的是一种自上 而下的设计方法,把复杂的问题一层层地分解成简单的过程, 用函数来实现这些过程,其特征是以函数为中心,用函数来作 为划分程序的基本单位,数据在过程式设计中往往处于从属的 位置,如图3-1所示。
第3章 任务3——创建考试系统中的试题类
3.2 技 术 要 点 3.2.1 面向对象编程概述
面向对象编程(Object Oriented Programming, OOP)是 当今最流行的程序设计技术,它具有代码易于维护、可扩展性 好和代码可重用等优点。面向对象的设计方法的基本原理是按 照人们习惯的思维方式建立问题的模型,模拟客观世界。从现 实世界中客观存在的事物(即对象)出发,并且尽可能运用人类 的自然思维方式来构造软件系统。Java是一种面向对象的程 序设计语言。
第3章 任务3——创建考试系统中的试题类
3) 消息(Message) 对象之间相互联系和相互作用的方式称为消息。一个消息 由五个部分组成:发送消息的对象、接收消息的对象、传递消 息的方法、消息的内容以及反馈信息。对象提供的服务是由对 象的方法来实现的,因此发送消息实际上就是调用对象的方法。 通常,一个对象调用另一个对象中的方法,即完成了一次消息 传递。
第3章 任务3——创建考试系统中的试题类 图3-2 面向对象的程序设计举例
第3章 任务3——创建考试系统中的试题类
3.面向对象的基本特性 面向对象的编程主要体现以下三个特性。 1) 封装性 面向对象编程的核心思想之一就是封装性。封装性就是把 对象的属性和行为结合成一个独立的单元,并且尽可能隐蔽对 象的内部细节,对外形成一个边界,只保留有限的对外接口, 使之与外部发生联系。封装的特性使得对象以外的部分不能随 意存取对象的内部数据(属性),保证了程序和数据不受外部干 扰且不被误用。

Java实用教程

Java实用教程
第11章并发
第13章 Java络编程 第14章 JDBC编程
实验2 Java语法基 础
实验1在Eclipse集 成开发环境中调试
程序
实验3 Java面向对 象编程(上)
实验4 Java面 1
向对象编程 (下)
2
实验5常用类与 异常处理
3
实验6数组、枚 举及注解
4
实验7容器和泛 型
5
实验8 Java输 入/输出系统
实验目的 实验准备 实验内容 思考与练习题
实验目的 实验准备 实验内容 思考与练习题
实验目的 实验准备 实验内容 思考与练习题
实验目的 实验准备 实验内容 思考与练习题
实验目的 实验准备 实验内容 思考与练习题
实验目的 实验准备 实验内容 思考与练习题
实验目的 实验准备 实验内容 思考与练习题
目录分析
第1章 Java和 Eclipse集成开发环

第2章 Java语法基 础
第3章 Java面向对 象编程(上)
第4章 Java面向对 象编程(下)
第5章常用类与异常 处理
第6章数组、枚举及 注解
第7章容器和泛型
第8章 Java输入/输 出系统
1
第9章 AWT组 件及应用
2
第10章 Swing 组件及应用
实验目的 实验准备 实验内容 思考与练习题
实验目的 实验准备 实验内容 思考与练习题
第1章习题答案 第2章习题答案
第3章习题答案 第4章习题答案
第6章习题答案
第5章习题答案
第7章习题答案
01
第8章习题 答案
02
第9章习题 答案
03
第10章习 题答案
04

java基础----第10章

java基础----第10章

程序10.1 程序10.1
EventDemo.java
setSize(350,100); setLocation(200,200); setVisible(true); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } class AL implements ActionListener{ // 内部类 public void actionPerformed(ActionEvent e){ if((JButton)e.getSource()==btn1) tf.setText("你点击了OK按钮"); // 修改文本框的内容 else if((JButton)e.getSource()==btn2) tf.setText("你点击了Cancel按钮"); } } public static void main(String[]args){ EventDemo frame = new EventDemo(); } }
ActionEvent AdjustmentEvent AWTEvent ComponentEvent ItemEvent TextEvent FocusEvent ContainerEvent InputEvent PaintEvent WindowEvent MouseEvent KeyEvent
表10-2 事件监听器接口、方法及处理的事件 10- 事件监听器接口、
监听器接口 ActionListener ItemListener 接口中的方法 actionPerformed(ActionEvent e) itemStateChanged(ItemEvent e) mouseClicked(MouseEvent e) mouseEntered(MouseEvent e) mouseExited(MouseEvent e) mousePressed(MouseEvent e) mouseReleased(MouseEvent e) mouseMoved(MouseEvent e) mouseDragged(MouseEvent e) keyPressed(KeyEvent e) keyReleased(KeyEvent e) keyTyped(KeyEvent e) focusGained(FocusEvent e) focusLost(FocusEvent e) 所处理的事件 ActionEvent ItemEvent

Java程序的设计的项目化教程教学资源模块2——GUI-PPT精选文档

Java程序的设计的项目化教程教学资源模块2——GUI-PPT精选文档

void setHorizontalAlignment(int align设) 置标签内容沿 X 轴的对齐方式
Icon getIcon()
返回该标签显示的图形图像
void setIcon(Icon icon)
定义此组件将要显示的图标
int getIconTextGap()
void setIconTextGap (int iconTextGap)
JLabel(String text)
创建具有指定文本的JLabel实例
JLabel(String text,Icon image,int align)
创建具有指定文本、图像和水平对 齐方式的JLabel实例
String getText()
返回该标签所显示的文本字符串
void setText(String text) 定义此组件将要显示的单行文本
void s etText( String text)
void setToolTipText(String text)
设置JTextArea中的显示文本
设 置 当 光 标 落 在 JTextArea 上 时 显示的提示信息为text
2.1 使用常用组件 项目10 求方程的根
int getColumns()
设置文本框JTextField的焦点
2.1 使用常用组件 项目10 求方程的根
方法
7.多行文本框(JTextArea) 主要功能
JTextArea()
JTextArea(String text)
JTextArea (int rows, int columns) JTextArea
(String text,int rows,int columns)

《Java程序设计案例教程》第10章

《Java程序设计案例教程》第10章


JTextField jtf2 = new JTextField(15); //创建列数为15的单行文本框

JPasswordField jpf = new JPasswordField(); //创建密码框

JLabel label = new JLabel();


jtf1.setText("这是一个不可编辑的单行文本框");
JFrame frame = new JFrame();
frame.setSize(250, 150);
frame.setLayout(new GridLayout(3, 2)); // 3行2列
frame.add(new JButton("按钮1"));
frame.add(new JButton("按钮2"));
frame.setVisible(true);
}
}
❖ 基本过程与AWT版本几乎完全相同
▪ 引入的包是java.swing ▪ 顶层容器是JFrame ▪ 有对应的组件,名称前加J:JButton、JLabel
❖ 可以设置窗体对关闭事件的响应

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// 不同的是增加关闭时的处理
// 设置frame的大小
frame.setVisible(true);
// 设置frame可见
}
}
❖ 基本过程
▪ 引入需要用到的包(java.awt) ▪ 定义并创建一个顶层容器(Frame) ▪ 定义并创建组件(Button、Label) ▪ 将组件添加到容器中 ▪ 设置窗口大小,并使其可见

精品文档-Java程序设计项目化教程(陈芸)-第15章

精品文档-Java程序设计项目化教程(陈芸)-第15章
<html> <title> HelloBeijing</TITLE> <body> <applet width="250" height="120" code="HelloBeijing2.class">
第15章 任务15——设计学生在线考试系统(B/S版)
</applet> </html> 在HelloBeijing.htm的代码中,引入 <applet width="250" height="120" code="HelloBeijing2.class"> 的作用就是当浏览器执行HelloWorld.html程序时,要调用 HelloWorld.class并执行。 4.执行HTML代码程序 (1) 在浏览器中执行HTML程序。完成HelloBeijing.htm 的编写后,可以使用Internet Explorer浏览器(简称IE)解释 并执行它,如图15-7所示。
(3) 服务器端对客户端进行监听,并显示连接客户端的 相关状态,如图15-2所示。
(4) 用户答题并提交试卷,得到本次考试成绩,结束考 试,如图15-3和图15-4所示。
第15章 任务15——设计学生在线考试系统(B/S版) 图15-2 考试系统(B/S)服务器端界面
第15章 任务15——设计学生在线考试系统(B/S版) 图15-3 考试系统(B/S)客户端考试界面
第15章 任务15——设计学生在线考试系统(B/S版)
Java Applet是基于HTML的程序,浏览器将其暂时下载到 用户的硬盘上,并在Web页打开时在本地运行。当用户访问包 含Java Applet的网页时, Applet被下载到用户的计算机上执 行,但前提是用户使用的是支持Java的网络浏览器,工作原 理如图15-5所示。由于Applet是在用户的计算机上执行的, 因此它的执行速度不受网络带宽或者Modem存取速度的限制, 用户可以更好地欣赏网页上Applet产生的多媒体效果。

精品文档-Java程序设计项目化教程(陈芸)-第2章

精品文档-Java程序设计项目化教程(陈芸)-第2章

第2章 任务2——处理考试系统中的成绩
2.2 任务【2-1】 成绩的评价 成绩的评价是对于给定的成绩,按照一定规则评价分数的 等级。规则:90分(含)以上为“优秀”;80分(含)以上为 “良好”;70分(含)以上为“中等”;60分(含)以上为“及 格”;低于60分为“不及格”。
第2章 任务2——处理考试系统中的成绩
第2章 任务2——处理考试系统中的成绩
Unicode编码在机器中占16位,范围为0~65 535。因此, Java中的字符占2个字节,16位,取值范围为 '\u0000'~ '\uFFFF' 或0~65 535。虽然英语、德语、西班牙语等语言 完全可以由8位表示,但是作为全球语言统一编码的Unicode 通过牺牲字节空间,为Java程序在不同语言平台间实现移植 提供和奠定了基础。字符型变量只能存放一个字符,不能存放 多个字符。例如,以“char ch='am';”来定义和赋值是错误 的。
十进制:以非0的数字开头,由0~9和正、负号组成。例 如,12,-34。
八进制:以数字0开头,由0~7和正、负号组成。例如, 0567。
十六进制:以0X或0x开头,由数字0~9、字母A~F及正、 负号组成。例如,0x3A。
Java的整型常量默认是int类型,若声明为长整型,则需 在末尾加“l”或“L”。如:123l、456L……
第2章 任务2——处理考试系统中的成绩
(3) 不能将关键字用做普通的标识符使用。例如, stu_id,$name,_btn2为合法的标识符;stu-id,name *, 2btn,class为不合法的标识符。
2) 关键字 关键字又称保留字,是Java语言保留用做专门用途的字 符串。在大多数的编辑软件中,关键字会以不同的方式醒目显 示。Java语言常用关键字如表2-1所示。

java程序设计(辛运帏第二版)课后习题答案

java程序设计(辛运帏第二版)课后习题答案

//习题2.2import java.util.*;class MyDate{private int year;private int month;private int day;public MyDate(int y,int m,int d){//构造函数,构造方法year=y;month=m;day=d;}//end public MyDate(int y,int m,int d)public int getYear(){//返回年return year;}//end getYear()public int getMonth(){//返回月return month;}//end getMonth()public int getDay(){//返回日return day;}//end getDay()}//end class MyDateclass Employee{private String name;private double salary;private MyDate hireDay;public Employee(String n,double s,MyDate d){name=n;salary=s;hireDay=d;}//end public Employee(String n,double s,MyDate d)public void print(){System.out.println("名字:"+name+"\n工资:"+salary+"\n雇佣年份:"+hireYear()+"\n");}//end print()public void raiseSalary(double byPercent){salary*=1+byPercent/100;}//endpublic int hireYear(){return hireDay.getYear();}}//end class Employeepublic class MyTestClass {public static void main(String[] args) {Employee[]staff=new Employee[3];staff[0]=new Employee("Harry Hacker",35000,new MyDate(1989,10,1));staff[1]=new Employee("Carl Carcker",75000,new MyDate(1987,12,15));staff[2]=new Employee("Tony Tester",38000,new MyDate(1990,3,12));int integerValue;System.out.println("The information of employee are:");for(integerValue=0;integerValue<=2;integerValue++){staff[integerValue].raiseSalary(5);}//end for()for(integerValue=0;integerValue<=2;integerValue++){staff[integerValue].print();}//end for()}//end main()}//end class MyTestClass//习题2.4import java.util.*;public class DataType {public static void main(String[] args) {boolean flag;char yesChar;byte finByte;int intValue;long longValue;short shortValue;float floatValue;double doubleValue;flag=true;yesChar='y';finByte=30;intValue=-7000;longValue=200l;shortValue=20000;floatValue=9.997E-5f;doubleValue=floatV alue*floatValue;System.out.println("the values are:");System.out.println("布尔类型变量flag="+flag);System.out.println("字符型变量yesChar="+yesChar);System.out.println("字节型变量finByte="+finByte);System.out.println("整型变量intValue="+intValue);System.out.println("长整型变量longValue="+longValue);System.out.println("短整型变量shortValue="+shortValue);System.out.println("浮点型变量floatValue="+floatValue);System.out.println("双精度浮点型变量doubleValue="+doubleValue); }//end main()}//习题2.9import java.util.*;class PubTest1{private int ivar1;private float fvar1,fvar2;public PubTest1(){fvar2=0.0f;}public float sum_f_I(){fvar2=fvar1+ivar1;return fvar2;}public void print(){System.out.println("fvar2="+fvar2);}public void setIvar1(int ivalue){ivar1=ivalue;}public void setFvar1(float ivalue){fvar1=ivalue;}}public class PubMainTest {public static void main(String[] args) {PubTest1 pubt1=new PubTest1();pubt1.setIvar1(10);pubt1.setFvar1(100.02f);pubt1.sum_f_I();pubt1.print();}}//习题2.10import java.util.*;class Date {private int year;private int month;private int day;public Date(int day, int month, int year) { //构造函数,构造方法this.year = year;this.month = month;this.day = day;} //end public MyDate(int y,int m,int d) public int getYear() { //返回年return year;} //end getYear()public int getMonth() { //返回月return month;} //end getMonth()public int getDay() { //返回日return day;} //end getDay()} //end class Datepublic class Teacher {String name;//教师名字boolean sex;//性别,true表示男性Date birth;//出生日期String salaryID;//工资号String depart;//教师所在系所String posit;//教师职称String getName() {return name;}void setName(String name) { = name;}boolean getSex() {return sex;}void setSex(boolean sex) {this.sex = sex;}Date getBirth() {return birth;}void setBirth(Date birth) {this.birth = birth;}String getSalaryID() {return salaryID;}void setSalaryID(String salaryID) {this.salaryID = salaryID;}String getDepart() {return depart;}void setDepart(String depart) {this.depart = depart;}String getPosit() {return posit;}void setPosit(String posit) {this.posit = posit;}public Teacher(){System.out.println("父类无参数的构造方法!!!!!!!"); }//如果这里不加上这个无参数的构造方法将会出错!!!!public Teacher(String name,boolean sex,Date birth,String salaryid,String depart,String posit){ =name;this.sex=sex;this.birth=birth;this.salaryID=salaryid;this.depart=depart;this.posit=posit;}//end Teacher()public void print(){System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if(this.getSex()==false){System.out.println("女");}else{System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear()+"-"+this.getBirth().getMonth()+"-"+this.getBirth().getDay()); System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());}//end print()public static void main(String[] args) {Date dt1=new Date(11,23,1989);Date dt2=new Date(2,6,1975);Date dt3=new Date(11,8,1964);Date dt4=new Date(10,4,1975);Date dt5=new Date(8,9,1969);//创建各系教师实例,用来测试Teacher t1=new Teacher("王莹",false,dt1,"123","经济学","prefessor");ResearchTeacher rt=new ResearchTeacher("杨zi青",true,dt2,"421","软件工程","associate prefessor","software");LabTeacher lat=new LabTeacher("王夏瑾",false,dt3,"163","外语","pinstrucor","speech lab");LibTeacher lit=new LibTeacher("马二孩",true,dt4,"521","大学物理","prefessor","physicalLib");AdminTeacher at=new AdminTeacher("王xi",false,dt5,"663","环境","prefessor","dean");/////////分别调用各自的输出方法,输出相应信息////////////////////////////System.out.println("-------------------------------");t1.print();//普通教师信息System.out.println("-------------------------------");rt.print();//研究系列教师信息System.out.println("-------------------------------");lat.print();//普通教师信息System.out.println("-------------------------------");lit.print();//实验系列教师信息System.out.println("-------------------------------");at.print();//行政系列教师信息System.out.println("-------------------------------");}//end main()}//end public class Teacherclass ResearchTeacher extends Teacher{private String resField;public ResearchTeacher(String name, boolean sex, Date birth, String salaryid,String depart, String posit, String resField) { = name;this.sex = sex;this.birth = birth;this.salaryID = salaryid;this.depart = depart;this.posit = posit;this.resField = resField;} //end public ResearchTeacher(){}String getResField(){return resField;}void setResField(String resField){this.resField=resField;}public void print() {System.out.print("research teacher info is:");System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if (this.getSex() == false) {System.out.println("女");}else {System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear() + "-" +this.getBirth().getMonth() + "-" +this.getBirth().getDay());System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());System.out.print("the teacher'resField:");System.out.println(this.getResField());} //end print()}//end class ResearchTeacherclass LabTeacher extends Teacher{private String labName;public LabTeacher(String name, boolean sex, Date birth,String salaryid, String depart,String posit, String labName) { = name;this.sex = sex;this.birth = birth;this.salaryID = salaryid;this.depart = depart;this.posit = posit;bName = labName;} //end public ResearchTeacher(){}String getLabName(){return labName;}void setLabName(String labName){bName=labName;}public void print() {System.out.print("lab teacher info is:");System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if (this.getSex() == false) {System.out.println("女");}else {System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear() + "-" +this.getBirth().getMonth() + "-" +this.getBirth().getDay());System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());System.out.print("the teacher'labName:");System.out.println(bName);} //end print()}//end class LabTeacherclass LibTeacher extends Teacher{private String libName;public LibTeacher(String name,boolean sex,Date birth,String salaryid,String depart,String posit,String libName){ = name;this.sex = sex;this.birth = birth;this.salaryID = salaryid;this.depart = depart;this.posit = posit;this.libName=libName;}//end public ResearchTeacher(){}String getLibName(){return libName;}void setLibName(String libName){this.libName=libName;}public void print() {System.out.print("lib teacher info is:");System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if (this.getSex() == false) {System.out.println("女");}else {System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear() + "-" +this.getBirth().getMonth() + "-" +this.getBirth().getDay());System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());System.out.print("the teacher'libName:");System.out.println(this.libName);} //end print()}//end class LibTeacherclass AdminTeacher extends Teacher{private String managePos;public AdminTeacher(String name,boolean sex,Date birth,String salaryid,String depart,String posit,String managePos){ = name;this.sex = sex;this.birth = birth;this.salaryID = salaryid;this.depart = depart;this.posit = posit;this.managePos=managePos;}//end public ResearchTeacher(){}String getManagePos(){return managePos;}void setManagePos(String managePos){this.managePos=managePos;}public void print() {System.out.print("adminteacher info is:");System.out.print("the teacher'name:");System.out.println(this.getName());System.out.print("the teacher'sex:");if (this.getSex() == false) {System.out.println("女");}else {System.out.println("男");}System.out.print("the teacher'birth:");System.out.println(this.getBirth().getYear() + "-" +this.getBirth().getMonth() + "-" +this.getBirth().getDay());System.out.print("the teacher'salaryid:");System.out.println(this.getSalaryID());System.out.print("the teacher'posit:");System.out.println(this.getPosit());System.out.print("the teacher'depart:");System.out.println(this.getDepart());System.out.print("the teacher'managePos:");System.out.println(this.managePos);} //end print()}//end class AdminTeacher习题2.11public class Course {private String courseID;private String courseName;private String courseType;private int classHour;private float credit;public Course(String courseID, String courseName, String courseType,int classHour, float credit) {this.courseID=courseID;this.courseName=courseName;this.courseType=courseType;this.classHour=classHour;this.credit=credit;}//end public Course(){}String getID() {return courseID;}void setID(String id) {this.courseID = id;}String getName() {return courseName;}void setName(String name) {this.courseName = name;}String getType() {return courseType;}void setType(String type) {this.courseType = type;}int getClassHour() {return classHour;}void setClassHour(int hour) {this.classHour = hour;}float getCredit() {return classHour;}void setCredit(float credit) {this.credit= credit;}public void print(){System.out.println("the basic info of this course as followed:");System.out.println("courseID="+this.getID());System.out.println("courseName="+this.getName());System.out.println("courseType="+this.getType());System.out.println("classHour="+this.getClassHour());System.out.println("credit="+this.getCredit());}public static void main(String[] args) {Course cs=new Course("d12","java程序设计(第二版)","cs",64,3.0f);System.out.println("----------------------------------");cs.print();System.out.println("修改课程学分为4.0f");cs.setCredit(4);cs.print();}}//习题2.12public class MyGraphic {String lineColor;String fillColor;MyGraphic(String lc,String fc){this.lineColor=lc;this.fillColor=fc;}void print(){System.out.println("line color is "+this.lineColor+"\t fill color is "+this.fillColor);}public static void main(String[] args) {float rd=(float)4.5;MyCircle mc=new MyCircle(rd,"black","white");MyRectangle mr=new MyRectangle(4,6,"red","blue");System.out.println("Circle info ");mc.print();System.out.println("circumference is " + mc.calCircum());System.out.println("square is " + mc.calSquare());System.out.println("rectangle info: ");mr.print();System.out.println("circumference is " + mr.calCircum());System.out.println("square is " + mr.calSquare());}//end main(){}}//end public class MyGraphicclass MyRectangle extends MyGraphic{float rLong;float rWidth;MyRectangle (float rl,float rw,String lc,String fc){super(lc,fc);this.rLong=rl;this.rWidth=rw;}//end MyRectangle (){}float calCircum(){return ((float)((this.rLong+this.rWidth)*2));}float calSquare(){return ((float)(this.rLong*this.rWidth));}}//end class MyRectangleclass MyCircle extends MyGraphic{float radius;MyCircle (float rd,String lc,String fc){super(lc,fc);this.radius=rd;}//end MyRectangle (){}float calCircum(){return (float)((this.radius*3.12*2));}float calSquare(){return ((float)(this.radius*this.radius*3.14));}}//end class MyCircle//习题2.13public class Vehicle {String brand;String color;int price;int number;public Vehicle(String b, String c) {this.brand = b;this.color = c;}public Vehicle(String b, String c, int p, int n) {this(b, c);this.price = p;this.number = n;}void print() {System.out.println("\n-------------------------");System.out.println("the vehicle info as followed :");System.out.println("brand=" + this.brand + "\t");System.out.println("color=" + this.color + "\t");System.out.println("price=" + this.price + "\t");System.out.println("number=" + this.number + "\t"); } //end void print()public static void main(String[] args) {V ehicle c1=new Vehicle("vehicle1","white");V ehicle c2=new Vehicle("vehicle2","white",300,1);Car cr=new Car("car1","red",300,4,400);Truck tk2=new Truck("truck1","black",300,400);c1.print();c2.print();cr.print();tk2.print();} //end main()} //end public class Vehicleclass Car extends Vehicle{int speed;Car(String b, String c, int p, int n,int s){super(b,c,p,n);this.speed=s;}void print(){super.print();System.out.print("speed="+this.speed); }}//end class Carclass Truck extends Vehicle{int speed;int weight;Truck(String b, String c, int s,int w){super(b,c);this.speed=s;this.weight=w;}void print(){super.print();System.out.print("speed="+this.speed);System.out.print("weight="+this.weight); }}//end class Truck//习题3.3public class Test {public static void main(String[] args) {int b1=1;int b2=1;System.out.println("b1=" + b1);System.out.println("b2=" + b2);b1<<=31;b2<<=31;System.out.println("b1=" + b1);System.out.println("b2=" + b2);b1 >>= 31;System.out.println("b1=" + b1);b1 >>= 1;System.out.println("b1=" + b1);b2 >>>= 31;System.out.println("b2=" + b2);b2 >>>= 1;System.out.println("b2=" + b2);}}//习题3.4public class Factorial {private int result,initVal;public static int Factorial(int n){if(n==0){return 1;}return n*Factorial(n-1);}public void print(){System.out.println(initVal+"!="+result); }public void setInitVal(int n){initVal=n;}public static void main(String[] args) {Factorial ff=new Factorial();for(int i=0;i<=4;i++){ff.setInitVal(2*(i+1));ff.result=Factorial(ff.initVal);ff.print();}//end for()}//end main()}//end public class Factorialpublic class Factorial2 {private int result,initVal;public void print(){System.out.println(initVal+"!="+result);}public void setInitVal(int n){initVal=n;}public static void main(String[] args) {Factorial2 ff=new Factorial2();for(int i=0;i<=4;i++){ff.setInitVal(2*(i+1));ff.result=1;for(int j=2;j<=ff.initV al;j++){ff.result*=j;}ff.print();}//end for()}//end main()}//习题3.5public class MathRandomTest {public static void main(String[] args) {int count=0,MAXof100,MINof100;int num,i;MAXof100=(int)(100*Math.random());MINof100=(int)(100*Math.random());System.out.print(MAXof100+" ");System.out.print(MINof100+" ");if(MAXof100>50)count++;if(MINof100>50)count++;if( MAXof100<MINof100){num=MINof100;MINof100=MAXof100;MAXof100=num;}//end if()for(i=0;i<98;i++){num=(int)(100*Math.random());System.out.print(num+((i+2)%10==9?"\n":" "));if(num>MAXof100){MAXof100=num;}else if(num<MINof100){MINof100=num;}if(num>50){count++;}}//end for()System.out.println("the max of 100 random integers is "+MAXof100);System.out.println("the min of 100 random integers is "+MINof100);System.out.println("the number of random more than50 is "+count); }//end main()}//end public class MathRandomTest//习题3.7public class PrintAst {public void printAstar() {System.out.print("*");}public void printSpace() {System.out.print(" ");}public static void main(String[] args) {PrintAst pa = new PrintAst();int initNum = 13;for (int i = 1; i <= initNum / 2 + 1; i++) {for (int n = 1; n <= i; n++) {pa.printSpace();pa.printSpace();}for (int m = 1; m <= initNum - 2 * i + 2; m++) {pa.printSpace();pa.printAstar();}System.out.println();} //end forif (initNum % 2 == 0) {for (int i = 1; i <= initNum / 2; i++) {pa.printSpace();pa.printSpace();}pa.printSpace();pa.printAstar();pa.printSpace();pa.printAstar();System.out.println();}for (int i = initNum / 2 + 2; i <= initNum; i++) {for (int n = 1; n <= initNum - i + 1; n++) {pa.printSpace();pa.printSpace();}for (int m = 1; m <= 2 * i - initNum; m++) {pa.printSpace();pa.printAstar();}System.out.println();} //end forSystem.out.println();} //end main()} //end public class PrintAst//习题3.8public class PrintTriag {public void printAstar() {System.out.print("*");}public static void main(String[] args) {int initLine = 10;int initNum = 10;PrintTriag pt = new PrintTriag();for (int i = 0; i < initLine; i++) {for (int j = 0; j < initNum - i; j++) {pt.printAstar();}System.out.println();}}//end main()}//end public class PrintTriag习题3.9import java.util.*;public class MultipleTable {public void printFormula(int i,int j,int res){System.out.print(i+"*"+j+"="+res+" "); }public static void main(String[] args) {MultipleTable mt=new MultipleTable();int initNum=9;int res=0;for(int i=1;i<=initNum;i++){for(int j=1;j<=i;j++){res=i*j;mt.printFormula(i,j,res);}System.out.println();}//end for}//end main()}//end public class MultipleTable习题3.10import java.io.*;public class HuiWen {boolean isHuiWen(char str[], int n) {int net = 0;int i, j;for (i = 0, j = n - 1; i < n / 2; i++, j--) {if (str[i] == str[j]) {net++;} //end if} //end forif (net == (int) (n / 2)) {return true;} //end ifelse {return false;}} //end boolean isHuiWen(char str[], int n)public static void main(String[] args) {HuiWen hw1 = new HuiWen();String pm = "";try {InputStreamReader reader = new InputStreamReader(System.in);BufferedReader input = new BufferedReader(reader);System.out.print("give your test string:\n");pm = input.readLine();System.out.println(pm);} //end trycatch (IOException e) {System.out.print(e);} //end catchboolean bw = hw1.isHuiWen(pm.toCharArray(), pm.length());if (bw == true) {System.out.println("是回文");}else {System.out.println("不是回文");}} //end main()} //end public class HuiWenimport java.io.*;public class HuiWen2 {String reverse(String w1){String w2;char[]str1=w1.toCharArray();int len=w1.length();char[]str2=new char[len];for(int i=0;i<len;i++){str2[i]=str1[len-1-i];}w2=new String(str2);return w2;}public static void main(String[] args) {HuiWen2 hw1 = new HuiWen2();String pm = "";try {InputStreamReader reader = new InputStreamReader(System.in);BufferedReader input = new BufferedReader(reader);System.out.print("give your test string:\n");pm = input.readLine();} //end trycatch (IOException e) {System.out.print(e);} //end catchString w2=hw1.reverse(pm);if(pareTo(pm)==0){System.out.println("是回文");}else {System.out.println("不是回文");}}}//习题3.11import java.io.*;public class PrimeNumber {private int pm;public void setPm(int pm){this.pm=pm;}public boolean isPrime(){boolean bl=true;int i=2;for(i=2;i<=Math.sqrt(pm);){if(pm%i==0){bl=false;break;}else{i++;}}//end forreturn bl;}//end public boolean isPrime()public static void main(String[] args) {PrimeNumber prim=new PrimeNumber();int testNum=0;try{InputStreamReader reader = new InputStreamReader(System.in);BufferedReader input = new BufferedReader(reader);System.out.print("give your test number:\n");testNum=Integer.parseInt(input.readLine());}//end trycatch(IOException e){System.out.println(e);}//end catchprim.setPm(testNum);boolean bl=prim.isPrime();if(bl==true){System.out.println(testNum+"是质数");}else {System.out.println(testNum+"不是质数");}}//end main}//end public class PrimeNumber习题3.12import java.io.*;public class Tempconverter {double celsius(double y){return ((y-32)/9*5);}public static void main(String[] args) {Tempconverter tc=new Tempconverter ();double tmp=0;try{InputStreamReader reader = new InputStreamReader(System.in);BufferedReader input = new BufferedReader(reader);System.out.print("give your fahrenheit number:\n");tmp=Double.parseDouble(input.readLine());}//end trycatch(NumberFormatException e){System.out.println(e);}//end catchcatch(IOException e){System.out.println(e);System.out.println("the celsius of temperature is "+tc.celsius(tmp));}//end main()}//end public class Tempconverter习题3.13import java.io.*;public class Trigsquare {double x, y, z;Trigsquare(double x, double y, double z) {this.x = x;this.y = y;this.z = z;}boolean isTriangle() {boolean bl = false;if (this.x > 0 && this.y > 0 && this.z > 0) {if ( (this.x + this.y) > this.z && (this.x + this.z) > this.y && (this.z + this.y) > this.x) {bl = true;} //ebd ifelse {bl = false;} //end else} //end if(this.x>0&&this.y>0&&this.z>0)return bl;} //end boolean isTriangle()double getArea() {double s = (this.x + this.y + this.z) / 2.0;return (Math.sqrt(s * (s - this.x) * (s - this.y) * (s - this.z)));} //end double getArea()public static void main(String[] args) {double s[] = new double[3];try {InputStreamReader reader = new InputStreamReader(System.in);BufferedReader input = new BufferedReader(reader);System.out.print("输入三角形的三边的长度:\n");for (int i = 0; i <= 2; i++) { //输入三个数s[i] = Double.parseDouble(input.readLine());。

Java程序设计项目化教程教学资源模块1——Java基础 共61页

Java程序设计项目化教程教学资源模块1——Java基础 共61页

Integer.toString(Integer) Integer.parseInteger(string)
Short.toString(Short)
Short.parseShort(string)
Byte.toString(Byte)
Byte.parseByte(string)
项目2 判断一个数是否是回文数 5. 语句
针对企业级的应用解决方案(主要有JDBC、 CORBA、EJB、JSP、JavaServlets 以 及 对 XML 的 支 持)。
2.Java程序的特点
简单性 分布性 安全性 可移植性 高性能 动态性
面向对象 鲁棒性 体系结构中立 解释执行 多线程
3. Java编程环境
复合数据类型包括:
数组 类:class 接口:interface
精度越 来越高
项目2 判断一个数是否是回文数 4. 运算符和表达式
运算符
算术运算符:+ - ++ -- * / %
关系运算符:< <= > >= == !=
逻辑运算符:! && ||
位运算符:~ & | ^ << >> >>>
数字转换成字符串
字符转换成数字
Double.toString(double) Double.parseDouble(string)
Float.toString(Float)
Float.parseFloat(string)
Long.toString(Long)
Long.parseLong(string)
Java应用程序 Java

精品课件-Java程序案例教程(田智)-第10章

精品课件-Java程序案例教程(田智)-第10章

System.out.println("name:"+str);
System.out.println("age:"+raf.readInt());
System.out.println("第一个员工的信息:");
raf.seek(0);
// 将文件指针移动
str="";
for(int i=0;i<len;i++)
【例10-2】 RandomFileDemo.java。
第10章 文件(IO)操作
01 import java.io.*;
02 public class RandomFileDemo
03 {
04
public static void main(String [] args) throws Exception
中向文件中写入三名员工的信息,然后按照第二名员工、第一
名员工、第三名员工的先后顺序读出。RandomAccess File可
以以只读或读/写方式打开文件,具体使用哪种方式取决于用
户创建RandomAccessFile类对象的构造方法:
new RandomAccessFile(f,"rw");
// 读/写方
第10章 文件(IO)操作
33 目录");
34 35 "); 36 37 不是绝对路径"); 38 39 "+stModified()); 40
System.out.println(f.isDirectory()?" 是 ":" 不 是 "+"

JAVA程序设计技能教程第10章

JAVA程序设计技能教程第10章
1.事件:是一个对象,它描述发生了什么事情。事件对象 .事件:是一个对象,它描述发生了什么事情。 由在Java中预先定义好的类产生,Java定义了所有事件 中预先定义好的类产生, 由在 中预先定义好的类产生 定义了所有事件 的事件类,如键盘操作对应的事件类是KeyEvent。 的事件类,如键盘操作对应的事件类是 。 java.awt.AWTEvent类是所有事件类的父类。 类是所有事件类的父类。 类是所有事件类的父类 2.事件源:能够产生事件的对象都可以称之为事件源,如 .事件源:能够产生事件的对象都可以称之为事件源, 键盘、鼠标、按钮等。 键盘、鼠标、按钮等。 3.事件处理方法:能够接收、解析处理事件类对象,实现 .事件处理方法:能够接收、解析处理事件类对象, 和用户交互的方法。它以事件对象为参数。 和用户交互的方法。它以事件对象为参数。 4.监视器:对事件源进行监视,使发生事件时做出处理的 .监视器:对事件源进行监视, 一种特殊的对象。事件源通过调用相应的方法将某个对 一种特殊的对象。 象作为自己的监视器。 象作为自己的监视器。
(3)滑动杆(JSlider) 引发改变事件:java.swing.event.ChangeEvent 处理事件接口:java.swing.event.ChangeListener 接口中的方法: public void stateChanged(ChangeEvent event)
10.2 任务二 掌握对键盘事件响应方法
else if(e.getKeyChar()=='b'||e.getKeyChar()=='B') c=Color.blue; else c=Color.black; repaint(); } } public void paint(Graphics g) { g.setColor(c); g.fillOval(60,60,100,100);} public static void main(String args[]){ new hh(); } }
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

用途 根据文件名称创建一个可供写入数据的输出流对 象,原先的文件会被覆盖 同上,但如果 a 设为 true,则会将数据附加在原先 的数据后面
第10章 任务10——读写考试系统中的文件
通常,FileInputStream和FileOutputStream经常配合使 用,以实现对文件的存取,常用于二进制文件的操作。输入流 FileInputStream中的read()方法按照单个字节顺序读取数据 源中的数据,每调用一次,按照顺序从文件中读取一个字节, 然后将该字节以整数(0~255之间的一个整数)形式返回。如 果到达文件末尾,则read()将返回-1。创建FileInput Stream对象的时候,若指定的文件不存在,则会产生一个 FileNot FoundException异常。
第10章 任务10——读写考试系统中的文件
10.2 技 术 要 点 本章的技术要点是数据的输入/输出。在Java 程序中, 对于数据的输入/输出操作是以“流”(stream)方式进行的, 如从键盘输入数据、将结果输出到显示器、读取与保存文件等 操作都可看做是流的处理。Java中的流是由字符或字节所组 合成的串,按照流的方向可以分为输入流(input stream)和 输出流(output stream)两种,若数据流入程序则称为输入流, 若数据从程序流出则称为输出流,如图10-1所示。
FileOutputStream("userb,bak"); while((b=in.read())!=-1){
第10章 任务10——读写考试系统中的文件
out.write(b); }
in.close(); out.close(); } catch (FileNotFoundException e) { System.out.println("找不到指定文件"); System.exit(-1); } catch (IOException e1) { System.out.println("文件复制错误"); System.exit(-1); } System.out.println("文件已复制");
第10章 任务10——读写考试系统中的文件
try { in = new FileInputStream(“user.txt”); while((b=in.read())!=-1){ System.out.print((char)b);
} 如果usera.txt中包含了汉字,则不能正常显示,将会出 现一堆乱码。这是因为一个汉字占两个字节,而字节流读取的 内容是以一个字节为单位的,因此不能正确地显示汉字。针对 这种情况,Java中定义了字符流。
第10章 任务10——读写考试系统中的文件
表10-6 Writer类的常用方法
常用方法 void write(int ch) void write(char buf[]) void write(char buf[], int off, int len) void write(string str)
第10章 任务10——读写考试系统中的文件
表10-5 Reader类的常用方法
常用方法
用途
int read()
从输入流读取一个字符。如果到达文件结尾,则返回 -1
int read(char buf[])
从输入流中将指定个数的字符读入到数组 buf 中,并返回读取 成功的实际字符数目。如果到达文件结尾,则返回 -1
用途 根据文件名称创建一个可供读取数据的输入流对象 根据 File 对象创建 FileInputStream 类的对象
第10章 任务10—பைடு நூலகம்读写考试系统中的文件
表10-4 FileOutputStream类的常用构造函数
常用构造函数 FileOutputStream(String filename) FileOutputStream(File file)
第10章 任务10——读写考试系统中的文件 第10章 任务10——读写考试系统中的文件
10.1 任务描 述 10.2 技术要 点 10.3 任务实 施
第10章 任务10——读写考试系统中的文件
10.1 任 务 描 述 本章的工作任务是完善考试系统中涉及到的文件输入与输 出的功能模块,主要包括: (1) 考生信息的注册:当考生将符合要求的信息输入并 点击【注册】按钮时,系统首先将用户信息文件内容读出以确 认用户名是否已经存在,若不存在则把当前信息写到用户信息 文件中。此项操作涉及文件读、写操作。
int read(char buf[],int off,int len) void close()
从输入流中将 len 个字符从 buf[off]位置开始读入到数组 buf 中,并返回读取成功的实际字符数目。如果到达文件结尾,则返 回 -1
关闭输入流,如果试图继续读取,将产生一个 IOException 异常
第10章 任务10——读写考试系统中的文件
1.字节流(InputStrem类和OutputStreamInputStream类) 在Java语言中,字节流提供了处理字节的输入/输出方法。 也就是说,除了访问纯文本文件之外,它们也可用来访问二进 制文件的数据。字节流类用两个类层次定义,在顶层的是两个 抽象类:InputStream(输入流)和OutputStream(输出流)。这 两个抽象类由Object类扩展而来,是所有字节输入流和输出 流的基类,抽象类是不能直接创建流对象的,由其所派生出来 的子类提供了读、写不同数据的处理。图10-2展示了这些类 之间的关系。
第10章 任务10——读写考试系统中的文件
表10-1 InputStream类的常用方法
常用方法 abstract int read() int read(byte b[]) int read(byte b[],int off,int len) long skip(long n) void close()
第10章 任务10——读写考试系统中的文件
10.2.1 输入/输出流 在Java中,我们可以通过InputStream、OutputStream、
Reader与Writer类来处理流的输入与输出。InputStream与 OutputStream类通常是用来处理“字节流”,也就是二进制 文件的。二进制文件是不能被Windows中的记事本直接编辑的 文件,在读、写二进制文件时必须使用字节流,例如Word文 档、音频和视频文件等。而Reader与Writer类则是用来处理 “字符流”,也就是纯文本文件的。纯文本文件是可以被 Windows中的记事本直接编辑的文件。
例10-1实现了一个二进制文件的复制过程。
第10章 任务10——读写考试系统中的文件
例10-1 FileStreamDemo.java import java.io.*; public class FileStreamDemo { public static void main(String[] args) { int b = 0; FileInputStream in = null; FileOutputStream out = null; try { in = new FileInputStream("user.txt"); out = new
第10章 任务10——读写考试系统中的文件 图10-1 流的输入与输出
第10章 任务10——读写考试系统中的文件
在Java开发环境中,主要是由包java.io中提供的一系列 的类和接口来实现输入/输出处理的。标准输入/输出处理则是 由包ng中提供的类来处理的,但这些类又都是从包 java.io中的类继承而来的。对于流可以从不同的角度进行分 类,除了上述分为输入流和输出流之外,还可按照处理数据类 型的不同分为字节流和字符流;根据流的建立方式和工作原理 不同分为节点流和过滤流。
第10章 任务10——读写考试系统中的文件
输出流FileOutputStream中的write()方法将字节写到输 出流中。虽然Java在程序结束时会自动关闭所有打开的文件, 但是在流操作结束后显式地关闭流仍然是一个编程的良好习惯。 输入/输出流中均提供了close()方法,它显式地关闭流的操 作。FileOutputStream对象的创建不依赖于文件是否存在。 如果该文件对象存在,但它是一个目录,而不是一个常规文件; 或者该文件不存在,但无法创建它;或者因为其他某些原因而 无法打开,将会产生一个FileNotFoundException异常。
第10章 任务10——读写考试系统中的文件
2.字符流(Reader类和Writer类) 字符流以一个字符(两个字节)的长度(0~65535、 0x0000~0xffff)为单位来处理,并进行适当的字符编码转换 处理。Reader类和Writer类是所有字符流的基类,属于抽象 类,它们的子类为基于字符的输入/输出处理提供了丰富的功 能。图10-3展示了字符输入流类派生的若干具体子类。
用途 从输入流读取一个字节的数据 从输入流读取字节数并存储在数组 b 中 从输入流中读取 len 个字节数据存放在字节数组 buf[off]的位置 从输入流中跳过 n 个字节 关闭输入流,释放资源
第10章 任务10——读写考试系统中的文件
表10-2 OutputStream类的常用方法
常用方法 abstract void write(int b) void write(byte b[]) void write(byte b[],int off,int len) void flush() void close()
第10章 任务10——读写考试系统中的文件
(2) 考生身份证的验证:考生登录模块中,当考生输入 用户名和密码后,系统将打开考生的信息文件,将所读出的信 息同输入的信息进行比较,以确保用户名和密码的正确。此项 操作仅涉及文件读操作。
(3) 考试试题的显示:考试功能模块中,当考生点击开 始考试时,系统将打开试题文件,读取其中的试题,按照考生 点击【上一题】、【下一题】的操作将试题按照要求显示。此 项操作涉及文件读操作。
相关文档
最新文档