JAVA实验4
Thread clockthread ; Font font; public Cl
this.setSize(350, 150); font = new Font("TimesRoman",Font.CENTER_BASELINE,45); }
实验项目名称: Java 高级编程 实验学时:
6
同组学生姓名:
———— 实验地点: 1514/A203
实验日期: 2016.5.13/5.25/5.27 实验成绩:
批改教师:
王倩倩
批改时间:
一、实验目的和要求
(1)了解文件的概念和文件对象的创建方法; (2)掌握使用文件输入输出流读写文件的方法; (3)了解线程的基本概念和多线程程序设计的基本方法; (4)掌握数据库连接的方法; (5)创建 SQL 查询并更新数据库中的信息; (6)调试程序要记录调试过程中出现的问题及解决办法; (7)编写程序要规范、正确,上机调试过程和结果要有记录,不断积累编程及调试经 验; (8) 做完实验后给出本实验的实验报告。
} catch(IOException ex) {
JOptionPane.showMessageDialog(null, "IO异常,合并\""+filename+"\"文件 未成功");
} } public static void main(String args[]) {
mergefile mf=new mergefile(); mf.merge("f:\\tex1.txt", "f:\\tex2.txt","f:\\tex3.txt"); mf.sort("f:\\tex3.txt"); } } 第 2 题实验代码: package shiyan4_2; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import javax.swing.JOptionPane; import shiyan4_1.mergefile; public class iskeyword { public iskeyword() { } public boolean judgekeyword(String filename) { try {
public int ct; public mergefile() {
} public void merge(String filename1,String filename2,String filename3) {
try {
FileInputStream fin1=new FileInputStream(filename1); FileInputStream fin2=new FileInputStream(filename2); FileOutputStream fout3=new FileOutputStream(filename3,true); byte buffer[]=new byte[512]; int count=0; while((count=fin1.read(buffer))!=-1) {
{ return true;
} else
{ return false;
} } catch(FileNotFoundException ex) {
JOptionPane.showMessageDialog(null, filename+"文件不存在,不能合并 ");
} catch(IOException ex) {
fin2.close(); fout3.close(); } catch(FileNotFoundException ex) { JOptionPane.showMessageDialog(null, filename1+"文件不存在,不能合 并。"); } catch(IOException ex) { JOptionPane.showMessageDialog(null, "IO异常,合并 \""+filename1+filename2+"\"文件未成功"); }
System.out.println("有关键字"); } else {
System.out.println("没有关键字"); } } } 第 3 题实验代码: package shiyan4_3;
public class DelayPrintThread extends Thread {
int sleepTime; public DelayPrintThread() {
} } 第 4 题实验代码: package shiyan4_4;
import java.applet.Applet;
class MultiThreadApplet extends Applet implements Runnable {
public void run() { } }
package shiyan4_4; import java.awt.*; import java.util.*; public class Clock extends MultiThreadApplet {
JOptionPane.showMessageDialog(null, "IO 异常,文件未成功"); } } public static void main(String args[]) { iskeyword kk=new iskeyword(); if(kk.judgekeyword("f:\\keyword.txt")) {
this.ct=count; fout3.write(buffer,0,count); } fin1.close(); while((count=fin2.read(buffer))!=-1) { this.ct+=count; fout3.write(buffer,0,count); } System.out.print("&"+this.ct);
} fin.close(); FileOutputStream fout=new FileOutputStream(filename,false); for(int i=0;i<temp.length;++i) {
for(int j=0;j<temp.length-i-1;++j) {
if(temp[j]>temp[j+1]) {
FileInputStream fin=new FileInputStream(filename); byte buffer[]=new byte[512]; int count=0,ct=0; while((count=fin.read(buffer))!=-1) {
ct=count; } fin.close(); FileInputStream fin2=new FileInputStream(filename); byte tt[]=new byte[ct]; while((count=fin2.read(tt))!=-1) {
(建议程序中适当添加注释信息,增强可读性;较长程序可分栏书写,保证报告排版整洁美 观。) 第 1 题实验代码: package shiyan4_1; import java.io.*; import javax.swing.JOptionPane;
public class mergefile //extends FilterInputStreanm implements DateIput {
要求:
(1)注意选用适当的文件流进行文件读写; (2)学会两种创建线程的方法,并比较使用场合; (3)养成良好的编程习惯,严格按照命名规则为包、类及类成员命名,将每个程序打包,包 的命名方式如 four.num1 表示实验四的第一题; (4)学会查阅 Java API 文档,如查找常用工具类。
程序清单:
ct=count; } fin.close();//对于输入流打开的时候再次打开会有影响,而且要知道到底读 入多少字节,还需要进行两次读写。 String str="abstract"; System.out.println(str); String temp= new String(tt);//将字符数组转换成字符串 System.out.println(temp.length()); if(str.equals(temp))
}
public void sort(String filename) {
try {
byte temp[]=new byte[ct]; int count=0; byte t; FileInputStream fin=new FileInputStream(filename); while((count=fin.read(temp))!=-1) {
二、实验仪器和设备
奔腾以上计算机,Windows 操作系统,装有 JDK1.7 和 Eclipse 软件,Access 数据库。
三、实验过程
(1)使用文件字节输入/输出流,合并两个指定文件;当文件中的数据已排序时,合并后的 数据也要求是已排序的。 (2)将 Java 的关键字保存在一个文本文件中,判断一个字符串是否为 Java 的关键字。 ( 3 ) 编 写 在 构 造 方 法 中 产 生 一 个 1-5 之 间 的 随 机 数 的 继 承 Thread 类 的 线 程 类 DelayPrintThread,使得线程体每休眠此随机数时间就打印输出线程号和休眠时间;另外编 写应用 DelayPrintThread 类的 Java 应用程序 TwoThread.java,在 main()方法中创建两个 线程,并应用 sleep()控制主应用程序延迟一段时间。 (4)编写继承 Runnable 接口的 Applet 多线程小程序类 MultiThreadApplet,编写继承该 类的 Applet 小程序类 Clock,在 Clock 中重新构造父类的 run()方法,实现数字时钟的功能, 要求不断刷新显示时、分、秒。