JAVA实验报告二

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
程序代码:
import java.io.*;
public class l {
public static void main(String[] args) throws IOException {
//创建一个文件
String filename= "test.txt";
String directory="C:/Documents and Settings/Administrator/Workspaces/MyEclipse 8.6/L";
图4.2题目1显示该文件的相关信息
图4.3题目2
图4.4题目3
b)调试课件Object和API文件夹下的程序
心得体会:
本次实验是关于JAVA的输入输出流。通过学习,我学会了使用FILE类创建文件,并且获取文件的相关信息,以及使用RandomAccessFile类对文件进行随机读取。
并且学习了解了字节流的输入和输出类:InputStream和OutputStream。同时还学会了使用节点流FileInputStream/FileOutputStream和处理流BufferedInputStream/BufferedOutputStream、DataInputStream\DataOutputStream。
System.out.println(s[0].equals(s[2]));
}
}
运行截图:
图3.1重载equals函数运行结果
题目2:分别用String的+运算,以及StringBuffer的append()方法,实现0~999的所有整数的字符串连接。并分别进行计时,同时比较两种拼接方法所得字符串是否相等。
System.out.println(sb);
}
}
运行截图:
图3.2 append和+比较运行结果图
题目3:构造Hashtable对象,其key是整数对应的字符串,其value是整数数值。用该对象存储1~10的整数。
程序代码:
package L;
import java.util.Hashtable;
a)完成以下题目:
题目1:用File类提供的方法在当前目录下创建一个文件,然后显示该文件的名字、路径,并测试文件是否存在。
题目2:用RandomAccessFile类提供的方法访问题目1中创建的文件,向其中写入内容并关闭,然后再重新打开读取内容并向屏幕打印。
题目3:结合使用DataInputStream,BufferedInputStream和FileInputStream访问题目1中创建的文件并向屏幕打印其内容。
}
else{
f.getParentFile().mkdirs();
try{
f.createNewFile();
System.out.println("文件创建成功!");
}
catch(IOException ioe){
ioe.printStackTrace();
}
}
//利用RandomAccessFile向文件里写入内容
心得体会:
本次实验也是收获颇多,通过实际的编程操作,验证了在JAVA中,“==”比较的是两个对象的引用是否相同,若相同,则返回true,不相同则返回false,因此如果要比较两个对象的值是否相同就无法通过“==”来进行判断,而需要使用equals函数。
然而在JAVA源程序中,equals比较的也是引用,因此为了达到目的,必须对equals函数进行重写。通过学习和查阅资料,我学会了如何重写equals函数,从而达到判断两个对象的值是否相同的目的。
if(obj instanceof student){
student s=(student) obj;
return this.age==s.age;
}
else return false;
}
public static void main(String []args){
student[] s=new student[3];
另外,JAVA对基本数据类型(如int、char等)的数据之间判断是否相等需要使用“==”,仅当对象比较是否相同时需要用equals函数。
本次实验还通过计时,比较了使用append连接字符串和使用“+”连接字符串所消耗的时间差别,从而编程验证了append的效率要高于使用“+”。因为append函数是直接将后一个字符串连接到前一个字符串上,而“+”所进行的操作是先将两个字符串进行连接赋给一个临时字符串变量,然后再将该临时字符串
(1)掌握Java语言的编程技巧,能够独立进行面向对象的开发能力。
(2)具有根据编程需求独立查询Java类库文档及相关资料,完成系统的能力。
(3)具有分析、寻找和排除程序中常见问题的能力。
二Baidu Nhomakorabea实验内容
(3)Java常用API的使用。熟悉Java常用API的使用方法,编写简单的Java程序(使用equals方法进行字符串比较;String的“+”连接;Hashtable集合类的使用)
将数据通过节点流输入\输出,在其外套上处理流,可以使得编译器进行优化时,提高数据流的输入\输出速度。
本次实验的收获很多,学到了以往不同于C++的IO处理类,实现了对数据更高效的输入和输出。
程序代码:
package L;
public class Test {
public static void main(String[] args) {
String str = "";
StringBuffer sb = new StringBuffer();
long start = 0L;
long end = 0L;
File f=new File(directory,filename);
if(f.exists()){
System.out.println("文件名:"+f.getName());
System.out.println("文件路径:"+f.getAbsolutePath());
System.out.println("文件大小:"+f.length());
FileOutputStream out=new FileOutputStream("test.txt");
BufferedOutputStream outbuf=new BufferedOutputStream(out);
DataOutputStream outd=new DataOutputStream(outbuf);
本课程是一门程序设计语言课程,通过本课程的学习,学生能够掌握Java语言程序的基本特点、基本编程方法和基本开发技巧,培养学生阅读、分析、设计和调试Java语言的能力,并具备一定的面向对象程序设计思想。
本课程的主要任务是在已学习的编程语言基础上,讲述Java语言的数据结构和语法规则;基本控制结构和编程技巧;Java语言面向对象的特点、编程方法和程序设计思路;Java语言的GUI程序和文件及I/O流的编程方法;能够正确配置Java开发环境,并使用相关的编辑、编译、调试、运行命令。
package L;
public class student {
int age;
void age(int age){
this.age=age;
}
public boolean equals(Object obj){
if(obj==null)return false;
if(this==obj)return true;
String st="";
st+=i;
a.put(st, tmp);
}
for(String key:a.keySet()){
Integer value=a.get(key);
System.out.println(key+"-"+value);
}
}
}
运行截图:
图3.3 Hashtable
b)调试课件Object和API文件夹下的程序
变量的值赋给目的变量。中间多了一个临时变量和一步操作,因此会花费更多的时间。
最后编写了一个调用API接口的小程序,使用了Hashtable中的各类函数,创建了一个简单的哈希表,比较简单。
(4)Java输入输出流的使用。熟悉Java常用输入输出流的使用方法。(File类,RandomAccessFile类的使用;结合使用DataInputStream,BufferedInputStream和FileInputStream)
public class Test {
public static void main(String[] args) {
Hashtable<String,Integer> a=new Hashtable<String,Integer>();
for(int i=1;i<11;i++){
Integer tmp=i;
a)完成以下题目:
题目1:重置(override)如下Student类的equals()方法。如果对象的类型相同且属性值都相等,返回boolean类型true值。如果有一不等返回boolean类型false值.请写出equals()方法的完整实现。
class Student
{int age;}
程序代码:
BufferedInputStream buf=new BufferedInputStream(dd);
DataInputStream ff=new DataInputStream(buf);
System.out.println(ff.readLine());
ff.close();
}
}
运行截图:
图4.1题目1创建文本文件
String content="Hello old world!";
RandomAccessFile rf=new RandomAccessFile(filename,"rw");
rf.writeBytes(content);
rf.close();
/*//利用FileOutputStream,BufferedOutputStream和DataOutputStream向文件写内容
Java语言程序设计实验报告二
班级:姓名:学号:
一、
Java程序设计的实验是Java程序设计课程重要的实践教学环节。实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的动手能力,掌握常用Java开发环境的使用方法,培养学生分析问题、解决问题、应用知识的能力和创新精神。充分放手让学生自行设计、自主调试,真正培养学生的实践动手能力,全面提高学生的综合素质。
//STRING
start = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
str = str + i;
}
end = System.currentTimeMillis();
System.out.println("使用string的时间是:" + (end - start) + "毫秒!");
System.out.println(str);
//APPEND
start = System.currentTimeMillis();
for (int i = 0; i < 1000; i++) {
sb.append(i);
}
end = System.currentTimeMillis();
System.out.println("使用StringBuffer的时间是:" + (end - start) + "毫秒!");
outd.writeBytes("Hello new world!");
outd.close();*/
//利用FileInputStream,BufferedInputStream和DataInputStream输出文件内容
FileInputStream dd=new FileInputStream("test.txt");
s[0]=new student();
s[1]=new student();
s[2]=new student();
s[0].age(12);
s[1].age(20);
s[2].age(12);
System.out.println(s[0]==s[2]);
System.out.println(s[0].equals(s[1]));
相关文档
最新文档