「java流实验」java io流实验报告

博主:adminadmin 2022-11-25 10:25:09 59

今天给各位分享java流实验的知识,其中也会对java io流实验报告进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java实验报告程序

public interface Auth {

public void check(String name,String pwd,AuthResult result);

}

class AuthResult{

public String msg;// 结果信息

public boolean success;// 验证结果

public boolean isSuccess(){

return success;

}

public String getMsg(){

return msg;

}

}

import java.io.BufferedReader;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.util.HashMap;

import java.util.Map;

public class Auth1 implements Auth {

MapString, String data = new HashMapString, String();

@Override

public void check(String name,String pwd,AuthResult result) {

try {

// 加载用户名和密码

InputStream in = getClass().getResourceAsStream("Auth1.txt");

BufferedReader br = new BufferedReader(new InputStreamReader(in));

String temp = null;

while((temp = br.readLine()) != null){

data.put(temp.split(":")[0], temp.split(":")[1]);

}

if(data.get(name) == null){

result.success = false;

result.msg = "用户名错误";

return;

}

if(!pwd.equals(data.get(name))){

result.success = false;

result.msg = "密码错误";

return;

}

result.success = true;

result.msg = "auth success!";

} catch (Exception e) {

e.printStackTrace();

}

}

}

public class Auth2 implements Auth {

MapString, String data = new HashMapString, String();

@Override

public void check(String name,String pwd,AuthResult result) {

try {

// 加载用户名和密码

InputStream in = getClass().getResourceAsStream("Auth2.txt");

BufferedReader br = new BufferedReader(new InputStreamReader(in));

String temp = null;

int i = 1;

String temp1 = null;

while((temp = br.readLine()) != null){

if(i % 2 == 0){

data.put(temp1, temp);

} else {

temp1 = temp;

}

i++;

}

if(data.get(name) == null){

result.success = false;

result.msg = "用户名错误";

return;

}

if(!pwd.equals(data.get(name))){

result.success = false;

result.msg = "密码错误";

return;

}

result.success = true;

result.msg = "auth success!";

} catch (Exception e) {

e.printStackTrace();

}

}

}

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Auth1 a1 = new Auth1();

Auth2 a2 = new Auth2();

Scanner sc = new Scanner(System.in);

String name = null;

String pwd = null;

System.out.println("enter name:");

name = sc.nextLine();

System.out.println("enter pwd:");

pwd = sc.nextLine();

AuthResult result = new AuthResult();

System.out.println("---Auth1---check");

a1.check(name,pwd,result);

if(result.isSuccess()){

System.out.println("auth success!");

} else {

System.out.println("auth fail! because " + result.getMsg());

}

System.out.println("---Auth2---check");

a2.check(name,pwd,result = new AuthResult());

if(result.isSuccess()){

System.out.println("auth success!");

} else {

System.out.println("auth fail! because " + result.getMsg());

}

}

}

文件与这些类同包下应该就能读到

Auth1.txt

name1:pwd1

name2:pwd2

Auth2.txt

name3

pwd3

name4

pwd4

Java基础知识实验

笛卡尔1596年3月31日生于法国土伦省莱耳市的一个贵族之家,笛卡儿的父亲是布列塔尼地方议会的议员,同时也是地方法院的法官,笛卡尔在豪华的生活中无忧无虑地度过了童年。他幼年体弱多病,母亲病故后就一直由一位保姆照看。他对周围的事物充满了好奇,父亲见他颇有哲学家的气质,亲昵地称他为“小哲学家”。

父亲希望笛卡尔将来能够成为一名神学家,于是在笛卡儿八岁时,便将他送入La fleche(拉夫雷士)的耶稣会学校,接受古典教育。校方为照顾他的孱弱的身体,特许他可以不必受校规的约束,早晨不必到学校上课,可以在床上读书 。因此,他从小养成了喜欢安静,善于思考的习惯。

笛卡儿1612年到普瓦捷大学攻读法学,四年后获博士学位。1616年笛卡儿结束学业后,便背离家庭的职业传统,开始探索人生之路。他投笔从戎,想借机游历欧洲,开阔眼界。

这期间有几次经历对他产生了重大的影响。一次,笛卡尔在街上散步,偶然间看到了一张数学题悬赏的启事。两天后,笛卡尔竟然把那个问题解答出来了,引起了著名学者伊萨克·皮克曼的注意。皮克曼向笛卡尔介绍了数学的最新发展,给了他许多有待研究的问题。

与皮克曼的交往,使笛卡尔对自己的数学和科学能力有了较充分的认识,他开始认真探寻是否存在一种类似于数学的、具有普遍使用性的方法,以期获取真正的知识。

据说,笛卡尔曾在一个晚上做了三个奇特的梦。第一个梦是,笛卡尔被风暴吹到一个风力吹不到的地方;第二个梦是他得到了打开自然宝库的钥匙;第三个梦是他开辟了通向真正知识的道路。这三个奇特的梦增强了他创立新学说的信心。这一天是笛卡儿思想上的一个转折点,有些学者 也把这一天定为解析几何的诞生日。

然而长期的军旅生活使笛卡尔感到疲惫,他于1621年回国,时值法国内乱,于是他去荷兰、瑞士、意大利等地旅行。1625年返回巴黎。1628年移居荷兰,在荷兰长达20多年的时间里,笛卡尔对哲学、数学、天文学、物理学、化学和生理学等领域进行了深入的研究,并通过数学家梅森神父与欧洲主要学者保持密切联系。他的主要著作几乎都是在荷兰完成的。

1628年,笛卡尔写出《指导哲理之原则》,1634年完成了以尼古拉·哥白尼学说为基础的《论世界》。书中总结了他在哲学、数学和许多自然科学问题上的一些看法。1637年,笛卡儿用法文写成三篇论文《折光学》、《气象学》和《几何学》,并为此写了一篇序言《科学中正确运用理性和追求真理的方法论》,哲学史上简称为《方法论》,6月8日在莱顿匿名出版。1641年出版了《形而上学的沉思》,1644年又出版了《哲学原理》等重要著作。

勒奈·笛卡尔(Descartes,René),法国数学家、科学家和哲学家。他是西方近代资产阶级哲学奠基人之一。他的年轻时的勒奈·笛卡儿哲学与数学思想对历史的影响是深远的。人们在他的墓碑上刻下了这样一句话:“笛卡尔,欧洲文艺复兴以来,第一个为人类争取并保证理性权利的人。”

笛卡尔出生于法国,父亲是法国一个地方法院的评议员,相当于现在的律师和法官。一岁时母亲去世,给笛卡尔留下了一笔遗产,为日后他从事自己喜爱的工作提供了可靠的经济保障。8岁时他进入一所耶稣会学校,在校学习8年,接受了传统的文化教育,读了古典文学、历史、神学、哲学、法学、医学、数学及其他自然科学。但他对所学的东西颇感失望。因为在他看来教科书中那些微妙的论证,其实不过是模棱两可甚至前后矛盾的理论,只能使他顿生怀疑而无从得到确凿的知识,惟一给他安慰的是数学。在结束学业时他暗下决心:不再死钻书本学问,而要向“世界这本大书”讨教,于是他决定避开战争,远离社交活动频繁的都市,寻找一处适于研究的环境。1628年,他从巴黎移居荷兰,开始了长达20年的潜心研究和写作生涯,先后发表了许多在数学和哲学上有重大影响的论著。在荷兰长达20年的时间里,他集中精力做了大量的研究工作,在1634年写了《论世界》,书中总结了他在哲学、数学和许多自然科学问题上的看法。1641年出版了《行而上学的沉思》,1644年又出版了《哲学原理》等。他的著作在生前就遭到教会指责,死后又被梵蒂冈教皇列为禁书,但这并没有阻止他的思想的传播。

笛卡尔不仅在哲学领域里开辟了一条新的道路,同时笛卡尔又是一勇于探索的科学家,在物理学、生理学等领域都有值得称道的创见,特别是在数学上他创立了解析几何,从而打开了近代数学的大门,在科学史上具有划时代的意义。

笛卡尔的主要数学成果集中在他的“几何学”中。当时,代数还是一门比较新的科学,几何学的思维还在数学家的头脑中占有统治地位。在笛卡尔之前,几何与代数是数学中两个不同的研究领域。笛卡尔站在方法论的自然哲学的高度,认为希腊人的几何学过于依赖于图形,束缚了人的想象力。对于当时流行的代数学,他觉得它完全从属于法则和公式,不能成为一门改进智力的科学。因此他提出必须把几何与代数的优点结合起来,建立一种“真正的数学”。笛卡尔的思想核心是:把几何学的问题归结成代数形式的问题,用代数学的方法进行计算、证明,从而达到最终解决几何问题的目的。依照这种思想他创立了我们现在称之为的“解析几何学”。1637年,笛卡尔发表了《几何学》,创立了直角坐标系。他用平面上的一点到两条固定直线的距离来确定点的位置,用坐标来描述空间上的点。他进而又创立了解析几何学,表明了几何问题不仅可以归结成为代数形式,而且可以通过代数变换来实现发现几何性质,证明几何性质。解析几何的出现,改变了自古希腊以来代数和几何分离的趋向,把相互对立着的“数”与“形”统一了起来,使几何曲线与代数方程相结合。笛卡尔的这一天才创见,更为微积分的创立奠定了基础,从而开拓了变量数学的广阔领域。最为可贵的是,笛卡尔用运动的观点,把曲线看成点的运动的轨迹,不仅建立了点与实数的对应关系,而且把形(包括点、线、面)和“数”两个对立的对象统一起来,建立了曲线和方程的对应关系。这种对应关系的建立,不仅标志着函数概念的萌芽,而且标明变数进入了数学,使数学在思想方法上发生了伟大的转折--由常量数学进入变量数学的时期。正如恩格斯所说:“数学中的转折点是笛卡尔的变数。有了变数,运动进入了数学,有了变数,辨证法进入了数学,有了变数,微分和积分也就立刻成为必要了。笛卡尔的这些成就,为后来牛顿、莱布尼兹发现微积分,为一大批数学家的新发现开辟了道路。

笛卡尔在其他科学领域的成就同样累累硕果。笛卡尔靠着天才的直觉和严密的数学推理,在物理学方面做出了有益的贡献。从1619年读了开普勒的光学著作后,笛卡尔就一直关注着透镜理论;并从理论和实践两方面参与了对光的本质、反射与折射率以及磨制透镜的研究。他把光的理论视为整个知识体系中最重要的部分。笛卡尔坚信光是“即时”传播的,他在著作《论人》和《哲学原理》中,完整的阐发了关于光的本性的概念。他还从理论上推导了折射定律,与荷兰的斯涅耳共同分享发现光的折射定律的荣誉。他还对人眼进行光学分析,解释了视力失常的原因是晶状体变形,设计了矫正视力的透镜。在力学方面,他提出了宇宙间运动量总和是常数的观点,创造了运动量守恒定律,为能量守恒定律奠定了基础。他还指出,一个物体若不受外力作用,将沿直线匀速运动。

笛卡尔在其他的科学领域还有不少值得称道的创见。他发展了宇宙演化论,创立了漩涡说。他认为太阳的周围有巨大的漩涡,带动着行星不断运转。物质的质点处于统一的漩涡之中,在运动中分化出土、空气和火三种元素,土形成行星,火则形成太阳和恒星。笛卡儿的这一太阳起源的旋涡说,比康德的星云说早一个世纪,是17世纪中最有权威的宇宙论。他还提出了刺激反应说,为生理学做出了一定的贡献。

笛卡尔近代科学的始祖。笛卡儿是欧洲近代哲学的奠基人之一,黑格尔称他为“现代哲学之父”。他自成体系,熔唯物主义与唯心主义于一炉,在哲学史上产生了深远的影响。同时,他又是一位勇于探索的科学家,他所建立的解析几何在数学史上具有划时代的意义。笛卡尔堪称17世纪的欧洲哲学界和科学界最有影响的巨匠之一,被誉为“近代科学的始祖”。

1649年冬,笛卡尔应瑞典女王克里斯蒂安的邀请,来到了斯德哥尔摩,任宫廷哲学家,为瑞典女王授课。由于他身体孱弱,不能适应那里的气候,1650年初便患肺炎抱病不起,同年二月病逝。终年54岁。1799年法国大革命后,笛卡尔的骨灰被送到了法国历史博物馆。 (补充:瑞典女王为了显示对知识的尊重,专门派一艘军舰接笛卡尔到瑞典)

笛卡尔的婚姻:与斯宾诺莎、布莱尼茨一样,笛卡尔终身未婚,没有享受到家庭生活所带来的快乐。他有一私生女,但不幸夭折,为其终生憾事。

java实验报告

实验1

Java开发工具及程序设计初步

实验目的

能够搭建Java的开发环境

熟悉常用的JDK操作命令的使用

熟悉Java程序的编写和编译过程

了解常用Java开发工具的使用

实验内容

实验练习1:搭建和使用JDK

1.JDK的下载和安装

JDK是SUN公司免费在网上发布的,我们可以进入SUN公司的网站()下载并安装。JDK安装完成后,进行如下操作:

(1)查看并写出JDK的安装目录______________________________;

(2)查看主目录bin文件夹中常用的JDK命令文件,写出java、javac等JDK命令所在的文件目录_________________________________;

(3)在Windows中打开一个命令行窗口,打开命令行窗口的方法有两种:

•选择“开始”→“所有程序”→“附件”→“命令提示符”

•选择“开始”→“运行…”命令,在打开的“运行”窗口中输入“cmd”命令并“确定”。

(4)在打开的命令行窗口中,分别执行java和javac命令,如:C:\java

查看执行结果,看是否输出如下的java命令的帮助信息(如图1-1所示)。

图1-1:java命令的帮助信息

C:\javac

查看执行结果,看是否输出如下的javac命令的帮助信息(如图1-2所示)。

图1-2:javac命令的帮助信息

如果上面的信息均能输出,说明JDK的安装成功,基本上可正常使用。

2.操作系统环境变量的使用

操作系统的环境变量是在操作系统中定义的变量,可被该操作系统上运行的程序访问。JDK中主要有两个相关的操作系统环境变量,即path和classpath。

(1)查看操作系统环境变量

•在命令行窗口中执行set命令

如:C:\set

查看set命令的输出结果,在set命令的输出结果中可看到许多等式,其中等号的左边是环境变量的名称,等号的右边是环境变量的取值。

命令:set

环境变量名,可查看指定的某个环境变量的设置情况。

执行命令:C:\set

path,查看path变量的设置情况。

•在“环境变量”窗口中查看环境变量

用鼠标右键单击“我的电脑”,选择“属性”命令,在打开的“系统属性”对话框中选择“高级”→“环境变量”,打开“环境变量”窗口。

在“环境变量”窗口中,有用户变量和系统变量两种环境变量。其中,用户环境变量只对某个用户起作用;系统环境变量对该系统上的所有用户都有效。

当我们以某一用户身份登录Windows时,它所使用的变量是系统变量和用户变量的总和。

如果一个变量在系统变量窗口和用户变量窗口都进行了设置,那么这个变量的取值在一般情况下为系统变量的取值与用户变量的取值相加;但有时也会出现用户变量的取值覆盖系统变量取值的情况。不管是什么情况,最终都以在命令行窗口中通过set命令查看到的结果为准。

(2)设置系统的环境变量

•在命令窗口中执行set命令

格式:set

变量名=[变量值]

执行如下命令,查看执行结果。

C:\set

Xx=aa

//新建一个环境变量并设置其取值

C:\set

Xx

//查看该环境变量

C:\set

Xx=

//取消环境变量的设置

C:\set

//查看环境变量

注意:在命令行窗口中设置的环境变量,只在该命令行窗口中起作用。

•在“环境变量”窗口中进行设置

可使用“新建”或“编辑”按钮。

注意:①

在“环境变量”窗口中设置的环境变量对以后所有的应用程序和命令行窗口都起作用,但不会影响原来运行的应用程序和启动的命令行窗口。

在“用户环境变量”窗口中进行的设置需要在注销重新登录后才起作用。

(3)path环境变量的作用和设置

环境变量path的值指定了JDK命令搜索路径,即当我们要执行某个命令时,操作系统首先会在当前目录下查找这个命令,如果当前目录下没有这个命令程序,操作系统会沿着path环境变量中所指定的目录依次去查找这个命令文件,并以最先找到的为准。

观察path变量的取值情况,path变量可以有多个取值,每个值代表一条搜索路径,它们之间用“;”分隔。

在命令行窗口中执行如下命令:

C:\set

path

//查看path环境变量

C:\set

path=

或set

path=C:\

//取消path变量的设置或重新设置path的值

C:\set

path

C:\java

或javac

//执行java或javac命令

会出现如下错误信息(如图1-3所示):

图1-3:错误信息

分析错误的原因:_____________________________________________________

改正的方法:__________________________________

实验练习2:Java程序的编写与编译过程

1.一个简单的Java程序的编写与编译

第一步:先在磁盘上创建保存程序文件的目录(文件夹),如:D:\javawork\lesson1。

第二步:在“记事本”中创建并编辑Java源程序文件Test1.java,程序代码如下:

class

Test1

{

}

保存文件,扩展名为.java。

第三步:在命令行窗口中,对源文件Test1.java进行编译。

可参考如下命令:

如果当前盘当前目录为C:\,先将当前目录设置为D:\javawork\lesson1。

C:\d:

D:\cd

ja*w*

D:\javaworkcd

le*

D:\javawork\lesson1javac

Test1.java

如果编译成功,则不出现任何提示,回到命令提示符状态下。打开保存源文件的文件夹,查看编译生成的字节码文件Test1.class。

第四步:运行字节码文件Test1.class。

D:\javawork\lesson1java

Test1

执行结果出现异常,如图1-4所示。

图1-4:执行出现异常

出现异常的原因是:缺少执行应用程序的入口main方法。main方法的声明必须是public

static

void

main(String

args[]){}。修改源程序代码并重新编译,源程序代码如下:

class

Test1

{

public

static

void

main(String

args[])

{

}

}

编译完成后,执行字节码文件。

在main方法中,添加输出的语句并重新编译执行,程序代码如下:

class

Test1

{

public

static

void

main(String

args[])

{

System.out.println("Hello

World!");

}

}

输出结果如图1-5所示。

图1-5:程序执行结果

2.classpath环境变量的作用与设置

环境变量calsspath用于指定Java类的路径,即设置classpath的作用是告诉Java运行系统的类加载器到哪里去寻找要执行的类。

在前面打开的命令行窗口中继续执行以下命令:

D:\java

Test1

执行结果如图1-6所示:

图1-6:改变当前目录后重新执行的结果

会发现程序执行出现异常:无法找到Test1类。说明在classpath变量中没有将Test1.class文件所在的目录设置为搜索路径,在命令行窗口中执行命令:

D:\set

classpath=%classpath%;d:\javawork\lesson1

重新执行程序,则运行结果正常。

调试练习

本节中的程序Test2.java不能正确地编译,修改所有的语法错误,使程序能够成功编译。程序编译之后,执行程序,比较输出结果与示例输出,然后排除所有可能的逻辑错误,示例输出演示了代码更正后程序的正确输出结果。

1.示例输出

2.错误的代码

//Test2.java

import

javax.swing.JOptionPane;

public

class

test2

{

public

static

void

main(string

args[])

{

JOptionPane.showMessageDialog(null,"Hello")

}

}

JAVA的两个实验

/*

* 编写使用抽象类的程序

* 抽象类Shape:

* double getArea():求一个形状的面积

* double getPerimeter ():求一个形状的周长

*/

abstract class Shape{

abstract double getArea();

abstract double getPerimeter();

}

/*

* 类 MyCircle:

* 由Shape类派生的具体类,除实现Shape类中的方法外,另有以下成员变量和方法:

* Radius:double类型,表示圆的半径

* MyCircle(double r):构造方法

* toString()方法 :输出圆的描述信息,如“radius=1.0, perimeter=6.28, area=3.14”

*/

class MyCircle extends Shape{

private double radius;

MyCircle(double r){

this.radius = r;

}

double getArea(){

return 3.14 * radius * radius;

}

double getPerimeter(){

return 2 * 3.14 * radius;

}

public String toString(){

return "radius= " + this.radius + " " + "perimeter= " + getPerimeter() + " " + "area " + getArea();

}

}

/*

* Test类作为主类要完成测试功能

* ①生成MyCircle对象,

* ②调用对象的toString方法,输出对象的描述信息

*/

class test{

public static void main(String[] args){

MyCircle my = new MyCircle(2);

System.out.println(my.toString());

}

}

/*

* (二)编写创建接口及实现接口的程序

* 接口ShapeArea:

* double getArea():求一个形状的面积

* double getPerimeter():求一个形状的周长

*/

interface ShapeArea{

double getArea();

double getPerimeter();

}

/*

* 类Rectangle:实现ShapeArea接口,另有以下成员变量和方法:

* Width,height:double型,表示长方形的宽度和长度

* Rectangle(double w, double h):构造方法

* toString():输出矩形的描述信息,如“width=1.0,height=2.0,perimeter=6.0,area=2.0”

*/

class Rectangle implements ShapeArea{

private double width;

private double height;

Rectangle(double w, double h){

this.width = w;

this.height = h;

}

public double getArea(){

return width * height;

}

public double getPerimeter(){

return 2 * (width + height);

}

public String toString(){

return "width= " + this.width + " " + "height= " + this.height + " " + "perimeter= " + getPerimeter() + " " + "area " + getArea();

}

}

/*

*(3)Test类作为主类要完成测试功能。

* 创建Rectangle类的对象,调用对象的toString方法,输出对象的描述信息

*/

class test{

public static void main(String[] args){

Rectangle my = new Rectangle(2, 4);

System.out.println(my.toString());

}

}

java 的实验写入文件:从标准设备中输入若干行英文句子直到输入“bye”结束,将这些字符串写入文件。

package test5;

import java.io.*;

public class test

{

public static void main(String[] args)throws java.io.IOException

{

InputStreamReader ir= new InputStreamReader(System.in);//将System.in转化为面向字符的流

BufferedReader in= new BufferedReader(ir);//为输入流提供缓冲区

FileWriter f =new FileWriter("test.txt");

BufferedWriter bw =new BufferedWriter(f);

String s;

System.out.print("请输入多行字符串\n");

while ((s = in.readLine())!=null)

{

if(s.equals("bye"))

{

break;

}

else

{

bw.write(s);

bw.newLine();

}

}

bw.close();

f.close();

in.close();

ir.close();

}

}

java流与文件实验

通过IO读写文件是可以达到你要的要求的。

请参照BufferedReader和BufferedWriter

java流实验的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java io流实验报告、java流实验的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-25,除非注明,否则均为首码项目网原创文章,转载请注明出处。