java2耿祥义的简单介绍

博主:adminadmin 2023-01-18 16:21:05 454

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

本文目录一览:

Java中有几种类型的流?

FileInputSream类

FileInputStream(String name)

FileInputStream(File file)

第一个构造方法是用给定的文件名name创建一个FileInputStream对象

第二个方法使用File对象创建FileInputStream对象

使用文件输入流读取文件

例如

FileInputStream istream=new FileInputStream(“myfile.dat”);

File f=new File(“myfile.dat”);

FileInputStream istream =new FileInputStream(f);

处理IO异常

Try{

FileInputStream istream=new FileInputStream(“myfile.dat”);

}

Catch(IOException e){}

从输入流中读取字节

Int read();从输入流中顺序读取源中的单个字节数据,返回字节值(0~255之间的一个整数),如果到达源的末尾,则返回-1

Read方法还可以吧多个字节读入到字节数组中:

Int read(byte b[]);

Int read(byte b[],int off,int len);

关闭流

使用close();

FileOutputStream类

该类提供了基本的文件写入能力,除了从OutputStream类继承来的方法外,FileOutputStream类还提供了两个构造方法:

FileOutputStream(String name)

FileOutputStream(File file)

第一个构造方法,给指定的文件名name创建一个FileOutputStreak对象

第二个构造方法,使用File对象创建FileOutputStream对象

可以使用write()方法把字节写入到输出流到达目的地

Write的格式:

Public void write(byte b[]) 其功能就是把b.length个字节到输出流

Public void write(byte b[],int off,int len)给定字节数组中,偏移off处写入len个字节到输出流

FileOutputStream流顺序的写文件,只要不关闭流,每次调用write方法就顺序地向输出流写入内容,直到流被关闭。

以上代码见hyh.io--File/Fileinputstream/Fileoutputsream

以上输入输出流容易出现的问题就是:汉字乱码

FileReader类和FileWriter类

与FileInputStream和FileOutputStream字节流相对应的是FileReader和FileWriter字符流,其分别是Reader和Writer的子类,构造方法如下:

FileReader(String filename)

FileWriter(String filename)

使用字节读取文件时,字节流不能直接操作Unicode字符,所以Java提供字符流。由于汉字在文件中占用了两个字节,如果使用字节流,读取不当会出现乱码现象,采用字符流就可以避免这个现象,因为在Unicode字符中,一个汉字被看做一个字符。

如果需要每次读取一行数据,FileReader类没有提供这样的方法,所以必须把这个流再接到另外一个流伤,从后面的流中读取一行数据。Java为其命名为BufferedReader类,构造方法:

BufferedReader(Reader in)

BufferedReader流能够读取文本行,方法是readLine()

通过向BufferedReader传递一个Reader对象,来创建一个BufferedReader对象,

FileReader inone=new FileReader(“Student.txt”);

BufferedReader intwo=BufferedReader(inone);

类似的可以将BufferedWriter流和FileWriter流连接在一起,然后使用BufferedWriter流将数据写到目的地,

FileWriter tofile=new FileWriter(”hello.txt”);

BufferedWriter out=BufferedWriter(tofile)

然后out使用BufferedReader类的方法:

Write(String s,int off,int len)把字符串s写入到文件中,off是s开始处的偏移量,len是写入的字符数量

代码详情见hyh.javaio.FileReaderandWriter

代码总结:FileReader和FileWriter可以进行汉字的读取和写入

BufferedReader有读取行的功能,readLine()

RandomAccessFile类

RandomAccessFile类创建的流指向既可以作为源也可以作为目的地。换句话说,当想对一个文件进行读写操作时,可以创建一个指向该文件的RandomAccessFile流

构造方法:

RandomAccessFile(String name,String mode)参数name用来确定一个文件名,给出流的源。参数mode取r或者rw(只读或者读写),决定对文件的访问权限。

RandomAccessFile(File file,String mode)参数file是一个File对象,给出源,同时也是目的地。参数mode决定访问权限。

该类中有一个seek(long a)方法,用来定位RandomAccessFile流的读写位置。参数a确定读写位置距离文件开头的字节个数。

还可以调用getFilePointer()方法或者流当前的读写位置

类方法P280:

关闭文件

获取读写位置等。。。。。。。。

使用RandomAccessFile流实现一个通讯录的录入与显示系统

见RandomAccessFile

数据流P284

数组流P286

对象流P288

序列化与对象克隆P290

文件锁FileLockP293

Process类中的流P295

带进度条的输入流P298(这个是我自己整理的一部分的学习笔记,教材为Java2实用教程第三版(耿祥义编著),因为使用了word进行整理,首字母大写忘记取消和一些代码在myeclipse上,但是不妨碍你查看)

JAVA2实用教程(第三版)耿祥义、张跃平实验指导与习题解答 (实验完整代码)

import java.util.Date;

public class Test {

public static void main(String[] args){

System.out.println("夏季用125度电的总电费是:"+new DianFei(125,true).getFee());

System.out.println("冬季用125度电的总电费是:"+new DianFei(125,false).getFee());

}

}

//电费类

class DianFei {

private double data;

private boolean b;

private double dj=0.49;//每度电费的价格

//data 为使用的度数,b为true表示夏天,b为false表示冬天

public DianFei(double data,boolean b){

this.data=data;

this.b=b;

}

//如果只传入一个用电度数,那么4-9月为夏,其他为冬

public DianFei(double data){

this.data=data;

int month=new Date().getMonth();

if(month=3 month=8){//月数十从0开始的

this.b=true;

}else{

this.b=false;

}

}

//得到电费的钱数

public double getFee(){

if(!b) data+=20;

return data*dj;

}

}

关于父类和子类同名static方法的调用

书上写的是 :“如果子类重写了父类的静态方法,那么子类对象的上转型对象不能调用子类的静态方法,只能调用父类的静态方法。(Java2实用教程(第四版) 耿祥义 张跃平编著 第128页的注:)

;fps=1

这是我看到的一篇关于static方法能否被重写的博文,博主结论是:Java中,如果父类中含有一个静态方法,且在子类中也含有一个返回类型、方法名、参数列表均与之相同的静态方法,那么该子类实际上只是将父类中的该同名方法进行了隐藏,而非重写。换句话说,父类和子类中含有的其实是两个没有关系的方法,它们的行为也并不具有多态性。正如同《Java编程思想》中所说:“一旦你了解了多态机制,可能就会认为所有事物都可以多态地发生。然而,只有普通方法的调用可以是多态的。”这也很好地理解了,为什么在Java中,static方法和final方法(private方法属于final方法)是前期绑定,而其他所有的方法都是后期绑定了。

推荐零基础java书籍?谢谢

1、孙卫琴《java面向对象编程》适合初学者

2、《Thinking in java 》,这是一本经典之作,学java的这个是一本必备书籍

3、《java核心卷1、2》,这个是进阶读物

4、《effective java》,

5、《java与模式

java2耿祥义的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、java2耿祥义的信息别忘了在本站进行查找喔。