Java基础学习(8)

2018-11-21 22:12

出一些比较常用的File方法:

1. String getName():返回该File对象所表示的文件名或者路劲名. 2. String getPath():返回该File对象所对应的绝对路劲名的字符串. 3. boolean renameTo(File newNmae):重命名为newName,成功?true. 4. boolean exists():判断File对应的文件或目录是否存在. 5. long lastMoidified():返回文件最后一次修改时间. 6. long length():返回文件长度.

7. boolean createNewFile():当此对象不存在时,该方法新建一个File对象所指

定的新文件,成功?true.(isFile?文件)

8. boolean mkdir():当目录不存在时,该方法新建一个目录.(isDirectory?目录) 9. boolean delete():删除File对象所对应的文件或者目录.

输入流:只能从中读取数据,而不能向其写数据.(Cilent端读取Server的数据)主要有InputStream(字节流)和Reader(字符流)作为基类.

输出流:只能向其写数据,而不能从中读取数据.(内存的内容写进硬盘),只要有OutputSteam(字节流)和Writer(字符流)作为基类.

字节流和字符流方法几乎一样,只是一个单位是字节,一个是字符,导致类型不相同.

InputStream和Reader的方法(都是抽象类,实现读取文件的类分别是FileInputSteam和FileReader):

1. int read():从输入流中读取单个字节/字符,返回所读取的字节/字符数据

(这两种数据都是可以转换成int类型的).

2. int read(byte[] b/char[] cbuf):从输入流中最多读取b/cbuf.length长度的字

节,并存储在数组中,返回实际读取的字节/字符数.

3. int read(byte[] b/char[] cbuf,int off,int len):最多读取len个,从数组的offset

索引开始放,返回实际读取的自己/字符数. OutputStream和Writer也非常类似:

1. void write(int c):将指定字节/字符输出到输出流中.

2. void void(byte[]/char[] buf,int off,int len):将数组从offset开始长度为len输

出到输出流中.

3. void(String str,int off,int len):将字符串从offset开始长度为len的字符输出

到指定输出流中.

如果要输出文本内容,应该包装成PrintStream对象后进行输出,方法创建OutputStream或者Writer对象后,比如是fos,然后用PrintStream ps = new PrintStream(fos)来生成ps对象,系统的标准输出System.out类型就是PrintStream.

访问文件:File+…,访问数组Byte/Char+Array…访问字符串String+…

十、2016.05.14

Scanner sc = new Scanner(System.in);

PrintStream ps = new PrintStream(\); sc.useDelimiter(\); while(sc.hasNext()) {

ps.println(sc.next()); }

这段程序就可以将键盘输入写入到文件.

先对类实现序列化接口然后就可以写入文件,无须实现任何方法,只需要声明就可以了,比如Person implements java.io.serializable,然后就可以用ObjectOutputStream oos = new ObjectOutputStream(new

FileOutputStream());然后就可以用oos.write(obj)把对象写入文件,然后用ObjectInputStream的readObject()可以将对象读取.

线程概述:单线程的程序只有一个顺序执行流,多线程则可以同时进行多个执行.

并发性(concurrency)和并行性(parallel)是两个概念,并行指在同一时刻多条指令在处理器上同时执行,并发指在同一时刻只能执行一条语句,但是多个进程指令被轮换快速执行,造成宏观上的同时进行效果.

通过Thread类来创建子类然后重写run方法,然后创建子类的实例,用线程的start方法来启动线程.用Thread.currentThread().getName()可以获取当前线程名称.

还有用接口Runnable来实现多线程,这个接口要用Thread(target,name)来创建新线程,并且创建的线程是共享一个target,这两种多线程实现方法的主要差别:

1. 实现Runnable接口的类还可以继承其他类. 2. Runnable可以共享一个target.

3. 实际上所有的线程实现几乎都是采用第一种也就是Runnable方法实现.(TestRunnable.java)

控制线程的方法:

1. join()方法,在某个程序执行流中调用其他线程的join()方法,调用线程将被

阻塞,知道被join()方法加入的线程执行完成为止.(JoinThread.java) 2. 后台线程:如果前台线程都死亡,那么后台线程会自动死亡.调用Thread对

象的setDaemon(true)方法可以将指定线程设置为后台线程.(DaemonThread.java) dt.setDaemon(true);

dt.start();要先set然后再start.

3. 线程睡眠:通过用sleep()方法让当前正在执行的线程暂停一段时间,并进

入阻塞状态.

4. 线程让步:yield()方法,通常用sleep()代替yield方法.

线程安全问题:(Account.java DrawThread.java TestDraw.java).

解决线程安全方法:synchronize(obj) {//同步代码块 }也可以用来修饰方法,使他编程线程安全的.

Lock同步锁:在实现线程安全中,通常使用ReentrantLock(可重入锁).使用Lock对象的代码如下图:

Java网络编程:

IP是四个8位二进制数组成,每8位可以转换成一个0~255的十进制整数,因此通常我们看到的IP地址是192.168.1.1

java为网络支持提供了java.net包,该包下的URL和URLConnection等类提供了访问WEB的功能.URLDecoder和URLEncoder则提供了普通字符串和application/x-www-for-urlencoded MIME字符串相互转换的静态方法.

使用InetAddress(代表IP地址):

1. getByName(String host):根据主机获得对应的InentAddress对象. 2. getByAddress(byte[] addr):根据原始IP来获取对应的InetAddress对象. 3. String getCanonicalHostName():获取IP的全限定域名.

4. String getHostAddress():返回InetAddress实例对应的IP地址字符串. 5. String getHostName():返回IP地址的主机名.


Java基础学习(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2015中国石油大学(华东)第二学期期末试题《C语言》综合复习

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

马上注册会员

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