java实验指导 

导读:Java程序设计实验指导书,实验5输入输出流操作,一、实验目的,二、实验要求,三、实验内容,实验6图形用户界面设计,Java程序设计实验指导书实验5输入输出流操作一、实验目的理解数据流的概念理解Java流的层次结构理解文件的概念二、实验要求掌握字节流的基本使用方法掌握字符流的基本使用方法能够创建、读写、更新文件三、实验内容(一)使用标准数据流的应用程序标准数据流指在字符方式下(如DOS提示符)

java实验指导 

Java 程序设计实验指导书

实验5 输入输出流操作

一、实验目的

理解数据流的概念

理解Java流的层次结构 理解文件的概念

二、实验要求

掌握字节流的基本使用方法 掌握字符流的基本使用方法 能够创建、读写、更新文件

三、实验内容

(一)使用标准数据流的应用程序

标准数据流指在字符方式下(如DOS 提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。

程序功能:将键盘上输入的字符在屏幕上显示出来 编写KY10_1.java 程序文件,源代码如下。 class KY10_1{

public static void main(String[] args) throws java.io.IOException { byte buffer[]=new byte[10];

System.out.println(\从键盘输入不超过10 个字符,按回车键结束输入:\int count =System.in.read(buffer);//读取输入的字符并存放在缓冲区buffer 中 System.out.println(\保存在缓冲区buffer 中元素的个数为:\System.out.println(\中各元素的值为:\for (int i=0;i

System.out.print(\在屏幕上显示buffer 元素的值 }

System.out.println();

System.out.println(\输出buffer 字符元素:\System.out.write(buffer, 0, buffer.length); } }

编译、运行KY10_1.java 文件。

(二)使用文件输入输出流的应用程序

程序功能:将保存在本地机当前文件夹中的KY10_2.HTML 文本文件的内容在屏幕上显示出来,然后将其另存为KY10_2.txt 文件。

编写KY10_2.java 程序文件,源代码如下 import java.io.*; public class KY5_4 {

public static void main(String[] args) throws IOException {

FileReader in=new FileReader(\建立文件输入流 BufferedReader bin=new BufferedReader(in);//建立缓冲输入流 FileWriter out=new FileWriter(\建立文件输出流 String str;

37

Java 程序设计实验指导书

while ((str=bin.readLine())!=null) {

//将缓冲区内容通过循环方式逐行赋值给字符串str System.out.println(str);//在屏幕上显示字符串str

out.write(str+\将字符串str 通过输出流写入KY5_1.txt 中 }

in.close(); out.close(); } }

编译、运行程序

(三)使用随机文件类的应用程序

使用文件输入类FileReader 只能将文件内容全部读入。如果要选择读入文件的内容,可使用随机文件类RandomAccessFile。

程序功能:建立数据流,通过指针有选择的读入文件内容。 编写KY10_3.java 程序文件,源代码如下。 import java.io.*; class KY10_3 {

public static void main(String args[]) {

String str[]={\try {

RandomAccessFile rf=new RandomAccessFile(\System.out.println(\文件指针位置为:\System.out.println(\文件的长度为:\rf.seek(rf.length());

System.out.println(\文件指针现在的位置为:\for (int i=0; i<3; i++)

rf.writeChars(str[i]); // 字符串转为字节串添加到文件末尾87 rf.seek(10);

System.out.println(\选择显示的文件内容:\String s;

while ((s=rf.readLine())!=null) System.out.println(s); rf.close(); }

catch (FileNotFoundException fnoe) {} catch (IOException ioe) {} } }

编译并运行程序

(四)使用数据输入输出流与文件输入输出流类的应用程序

使用数据输入流DataOutputStream 和数据输出流DataInputStream 可以读取或写入任何Java 类型的数据,不用关心它们的实际长度是多少字节。一般与文件输入流FileInputStream 和输出流类 FileOutputStream 一起使用。

程序功能:将整型数据和字符串对象通过数据输出流写到文件中。将文件中的整型数据和字符串对象通过数据输出流读出,并在屏幕上显示文件中的内容。 编写KY10_4.java 程序文件,源代码如下。 import java.io.*; public class KY10_4 {

public static void main(String arg[]) { try

{ //添加方式创建文件输出流

FileOutputStream fout = new FileOutputStream(\DataOutputStream dout = new DataOutputStream(fout); dout.writeInt(1);

38

Java 程序设计实验指导书

dout.writeChars(\罗马\dout.writeInt(2);

dout.writeChars(\北京\dout.close(); }

catch (IOException ioe){} try {

FileInputStream fin = new FileInputStream(\DataInputStream din = new DataInputStream(fin); int i = din.readInt();

while (i!=-1) //输入流未结束时,输入流结束时i 为-1 {

System.out.print(i+\char ch ;

while ((ch=din.readChar())!='\\n') //字符串未结束时 System.out.print(ch); System.out.println(); i = din.readInt(); }

din.close(); }

catch (IOException ioe){} } }

编译并运行程序

(五)使用对象输入输出流的应用程序

使用对象流可以直接写入或读取一个对象。由于一个类的对象包含多种信息,为了保证从对象流中能够读取到正确的对象,因此要求所有写入对象流的对象都必须是序列化的对象。一个类如果实现了Serializable 接口,那么这个类的对象就是序列化的对象。Serializable 接口没有方法,实现该接口的类不需要实现额外的方法。

程序功能:保存对象信息到文件,并将文件中的对象信息显示出来。 编写KY10_5.java 程序文件,源代码如下。 import java.io.*;

public class KY5_7 implements Serializable //序列化接口 {

int bh=1;int nl=21; String xm;

KY5_7(int bh,String xm,int nl)//构造方法 {

this.bh = bh; this.xm = xm; this.nl = nl; }

KY10_5()//构造方法 {

this(0,\}

void save(String fname)//保存到文件中的方法 { try {

FileOutputStream fout = new FileOutputStream(fname);//输出文件流 ObjectOutputStream out = new ObjectOutputStream(fout);//输出对象流 out.writeObject(this); //写入对象 out.close();

39

Java 程序设计实验指导书

}

catch (FileNotFoundException fe){} catch (IOException ioe){} }

void display(String fname)//显示文件中对象信息的方法 { try {

FileInputStream fin = new FileInputStream(fname);//输入文件流 ObjectInputStream in = new ObjectInputStream(fin);//输入对象流 KY10_5 OO = (KY5_7)in.readObject(); //读取对象

System.out.println(\类名: \\

System.out.println(\in.close(); }

catch (FileNotFoundException fe){} catch (IOException ioe){}

catch (ClassNotFoundException ioe) {} }

public static void main(String arg[]) {

String fname = \

KY10_5 O1= new KY5_7(1,\张驰\O1.save(fname); O1.display(fname); } }

编译并运行程序

40

Java 程序设计实验指导书

实验6 图形用户界面设计

一、 实验目的

了解图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,了解如何使用 布局管理器对组件进行管理,以及如何使用 Java 的事件处理机制。熟悉图形、图像的使用方法,理解计算机动画的原理和 Java 的多线程处理机制,能够编写 Applet 中使用的动画。

二、 实验要求

1. 掌握在 Applet 容器中添加组件的方法,掌握使用布局管理器对组件进行管理的方法。 2. 理解 Java 的事件处理机制,掌握为不同组件编写事件处理程序的方法。 3. 掌握编写独立运行的窗口界面的方法。 4. 了解 Java Swing 组件的使用方法。 5. 了解对话框的使用方法。

6. 掌握使用图形类 Graphics 画出不同图形的方法。 7. 掌握在容器中输入图像、播放音乐的方法。

8. 理解计算机动画原理,掌握图形双缓冲技术,能够设计计算机动画。 9. 理解多线程机制,掌握线程的使用方法。

三、 实验内容

(一)创建图形用户界面

图形用户界面(Graphic User Interface ,简称 GUI)是为方便用户使用设计的窗口界面,在图 形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。 组件(Component)是构成 GUI 的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的 交互。组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如 Applet、 Panel(面板)、Frame(窗口)等。通过容器的 add 方法把组件加入到容器中。 1. 在 Applet 中添加标签、按钮并使用网格布局

(1) 程序功能:在 Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容 器中的位置。

(2) 编写 LX6_1.java 程序文件,源代码如下。 import java.awt.*;

import java.applet.Applet;

public class LX6_1 extends Applet { Label l1; Button b1, b2, b3, b4, b5, b6; public void init() {

setLayout(new GridLayout(3,3)); // 设置网格布局(3 行 3 列共 9 个网格) l1=new Label(\标签 1\

b1 = new Button(\按钮 1\按钮 2\按钮 3\按钮 4\add(b1); add(b2); add(b3);

add(new Label());

41

博泰典藏网btdcw.com包含总结汇报、自然科学、高中教育、计划方案、外语学习、行业论文、经管营销、高等教育、表格模板、教学研究、出国留学以及java实验指导 等内容。

本文共10页1<<45678910