java实验指导(10)

2019-08-03 12:18

JAVA面向对象程序设计实验指导书

5. 使用对象输入输出流的应用程序

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

6.完成一个Copy任意大小文件的程序 //MyCopy.java import java.io.*; public class MyCopy {

void copy(File src, File dst) throws IOException { InputStream in = new FileInputStream(src); OutputStream out = new FileOutputStream(dst); byte[] buf = new byte[1024]; int len;

while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); }

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

7.编程实现将一个文本文件中的内容,以行为单位,调整为倒序排列 //InvertSort.java import java.io.*;

import java.util.List;

import java.util.ArrayList;

public class InvertSort {

public static void main(String[] args) throws IOException { File orig = new File(\ File target = new File(\

BufferedReader reader = new BufferedReader(new FileReader(orig)); BufferedWriter writer = new BufferedWriter(new FileWriter(target)); List tmp = new ArrayList(); String data = null;

while ((data=reader.readLine())!=null){ tmp.add(data); }

for (int i = tmp.size()-1; i >=0; i--) { String s = (String) tmp.get(i); writer.write(s); writer.write('\\n'); }

reader.close(); writer.close(); } }

- 42 -

JAVA面向对象程序设计实验指导书 8.编写一个简单的命令行下的压缩和解压缩工具(代码略)

实验项目8 NIO的应用

一、 实验目的 熟悉NIO的使用。 二、 实验要求

1. 掌握用I/O流实现文件读/写、压缩文件读/写的方法; 2. 了解java.nio包,掌握java非阻塞输入/输出操作。

三、 实验内容 1.ByteBuffer的使用

import java.nio.ByteOrder; import java.nio.IntBuffer; import java.nio.ByteBuffer; public class NIOBufferDemo { public static void main(String[] args) { ByteBuffer b = ByteBuffer.allocate(4096); ByteBuffer buf2 = ByteBuffer.allocateDirect(65536); byte[] data=new byte[1024]; ByteBuffer buf3 = ByteBuffer.wrap(data); buf3.order(ByteOrder.BIG_ENDIAN); IntBuffer ib = buf3.asIntBuffer(); b.put(data); b.put((byte) 42); b.put(0, (byte) 9); b.putChar('x'); b.putInt(0xcafebabe); int capacity = b.capacity(); int position = b.position(); int limit = b.limit(); int remaining = b.remaining(); boolean more = b.hasRemaining(); b.limit(b.position()); b.position(0); b.flip(); b.rewind(); b.clear(); buf2.put(b); b.rewind(); byte b0 = b.get(); byte b1 = b.get(); byte[] fourbytes = new byte[4]; b.get(fourbytes); byte b9 = b.get(9); int i = b.getInt(); b.compact(); } }

- 43 -

JAVA面向对象程序设计实验指导书

2.CharBuffer的使用

import java.nio.CharBuffer;

public class NIOCharBufferDemo { public static void main(String[] args) { CharBuffer cb = CharBuffer.wrap(\CharBuffer\ String s = cb.toString(); System.out.println(cb); char c = cb.charAt(0); char d = cb.get(1); char e = cb.get(); System.out.println(\ System.out.println(\ System.out.println(\ } }

3.CharSet的使用

import java.nio.ByteBuffer; import java.nio.CharBuffer;

import java.nio.channels.ReadableByteChannel; import java.nio.charset.Charset;

import java.nio.charset.CharsetEncoder; import java.nio.charset.CharsetDecoder;

import java.nio.charset.CharacterCodingException;

public class CharsetDemo { public static void main(String[] args) throws CharacterCodingException { Charset charset = Charset.forName(\ CharBuffer cb = CharBuffer.wrap(\ CharsetEncoder encoder = charset.newEncoder(); CharsetDecoder decoder = charset.newDecoder(); ByteBuffer bb = encoder.encode(cb); System.out.println(decoder.decode(bb)); } }

实验项目9 多线程与图形处理

一、 实验目的 熟悉图形、图像的使用方法,理解计算机动画的原理和Java 的多线程处理机制,能够编写Applet 中使用的动画。

二、 实验要求

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

3. 理解计算机动画原理,掌握图形双缓冲技术,能够设计计算机动画。 4. 理解多线程机制,掌握线程的使用方法。 5. 学会Swing组件的使用。

三、 实验内容

- 44 -

JAVA面向对象程序设计实验指导书 (一) 使用图形类Graphics

在Java中基本图形包括点、线、圆、矩形等,是构成复杂图形的基础。绘制基本图形要使用AWT 包中的Graphics 类,它提供了各种基本图形的绘制方法,可以直接引用这些方法画点、线、圆、矩形等。

1.创建在Applet 上画出不同的图形的程序

(1)程序功能:在Applet 上使用不同的颜色画出直线、圆、方块、圆弧等图形。 (2)编写LX7_1.java 程序文件,源代码如下。

import java.applet.Applet; import java.awt.Graphics; import java.awt.Color;

public class LX7_1 extends Applet { public void paint(Graphics g) {

g.drawLine(10,10,50,10);// 画线(确定两点) g.setColor(Color.red);//设置红颜色

g.drawOval(35,35,100,60);// 画椭圆(圆心、宽和高) g.fillOval(200,15,60,100);// 画具有填充色的圆 g.setColor(Color.blue);//设置蓝颜色 g.drawRect(20,130,80,80);//画矩形

g.fillRect(120,130,80,80);// 画具有填充色的矩形

g.drawRoundRect(220,130,80,80,20,20);//画圆角矩形

g.fillRoundRect(320,130,80,80,20,20);// 画具有填充色的圆角矩形 g.setColor(new Color(255,255,0)); //设置黄颜色 g.drawArc (250,20,100,100,0,90); g.fillArc (380,20,100,100,90,90); g.fillArc (300,25,100,100,180,90); g.drawArc (330,25,100,100,0,-90); } }

(3)编译程序LX7_1.java。

(4)编写显示LX7_1.class 的页面文件,在浏览器中显示结果如图7.1 所示。

- 45 -

JAVA面向对象程序设计实验指导书

图7.1

2.创建使用画布对象的Applet 应用程序

(1) 程序功能:创建一个带有多边形、圆的自定义画布类,在Applet 上显示自定义画布的对象。

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

public class LX7_2 extends Applet {

public void init() {

Color col=new Color(20,55,75);

setBackground(col);//设置Applet 的背景色

setForeground(Color.yellow);//设置Applet 的前景色 MyCanvas1 c=new MyCanvas1();//创建画布对象

c.setBackground(Color.white);// 设置画布的背景色 c.setSize(300,200);//设置画布的大小 add(c); } }

class MyCanvas1 extends Canvas {

public void paint(Graphics g) { g.setColor(Color.red);

g.fillOval(40,20,80,80);//画圆 g.setColor(Color.cyan);//设置青色

int p1X[]={20,20,100,20};//多边形的x坐标 int p1Y[]={20,80,20,20};//多边形的y 坐标 int p1=3;//多边形的边数

g.fillPolygon (p1X,p1Y,p1);//画填充多边形

- 46 -


java实验指导(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:牛津译林版2017-2018学年九年级(上)期末英语试卷及答案解析

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: