Java第二十二课

Java 的字节流
把数据从程序存储到文件,把数据从文件读取程序中
File
只操作文件和文件属性
createNewFile
getPath---项目目录
getAbsolutePath()
getName()-----substring()
list()--列出当前目录的所有文件或文件夹,返回值 String[] ,
返回只有文件名,路径可以拼接
listFiles()----列出当前目录的所有文件或文件夹,返回值是
File[],调用 File 的方法去进行处理
字节流
返回的整型 int
输入流 FileInputStream read 方法 最后关闭 close
输出流 FileOutputStream write 方法 最后关闭 close
性能指标参考
System. currentTimeMillis(),具体的时间戳.
实际处理问题,一般是有缓存,定义一个字节数组 byte[]
系统提供了缓存的类
BufferInputStream--(FileReader)FileInputStream--File
缓存输入类 BufferedInputStream

缓存输出类 BufferedOutputStream
底层写缓存的方法,与我们自己定义字节数组缓存思想一样.
BufferedInputStream 缓存数字是 8192 (8K)
文件内容放在 Buffer 中,读的时候用 BufferedInputStream,
写的时候用 BufferOutputStream
字节流处理文件传输
字符流,专门针对于文本文件处理
FileReader-FileInputStream--File
底层是 Reader 类
FileWriter
底层是 Writer 类
实质还是字节,只不过处理过程用 char
Reader 的缓存类 BufferedReader
这个类中 readLine,读文本文件处理,往往项目需求按行读
Buffer,使用缓存,write 后一定 flush(),如果关闭,自动 flush()
在应用缓存的开发中,这里有三种操作:剪切,复制,粘贴。
剪切,复制对文字是 100%有效,字符流更好保证了剪切,
复制,粘贴。
不执行 flush(),数据在缓存中,flush()之后数据变成实际的文

剪切是不清楚这个文件剪切,剪切是不保存文件的,
剪切逻辑

首先把文件全部在缓存中,不执行 flush()方法,只有粘贴时
执行 flush 方法
这里报错,New Writer 里面传 File,File 没有路径是做不了
的.相当于剪切必须知道剪切到哪里.实际操作是不知道路
径的,就必须有一个路径先有效,后期把路径覆盖.
所以每个人电脑都有一个预先的路径设置,预先设置的路径
是临时文件.(tmp)
文件剪切,执行文件到缓存中,同时在源路径删除
实际开发,用 buffer 产生临时文件.
执行到粘帖时,把缓存中的数据 flush 就可以。
剪切,一定需要 Buffer
作业:
开发一个文本文件的复制,剪切,粘帖系统
菜单
――――――
1―――复制
2-------剪切
3-----粘帖
复制
复制的文件:
首先文件是否存在,不存在,报错:文件不存在
如果文件存在,复制到缓存中,不 flush

自己找一个路径,做临时文件的路径
用户选择粘贴:
输入粘贴的地址:
地址是文件是文件夹,文件夹(有没有无所谓,创建文件夹)
文件(创建文件)flush
复制不删除原文件,
剪切:
首先文件是否存在,不存在,报错:文件不存在
如果文件存在,复制到缓存中,不 flush
但是把原文件删除掉
用户粘帖,用把 flush 到这个路径,
无论复制,剪切,到粘帖,把临时文件中产生的临时文件干
掉.
面向接口开发.
Java 线程
Java 面临的问题并发的问题
同时: 并发 (访问程序时多个用户对程序同时操作)
模拟抢票
面向对象
类-票

当前写法还是主线程的程序调用 for 循环
public class MyMain {
public static void main(String[] args) throws Exception
{
//new
实例化,把 MyTrain
初始化,
才有 100
张票,
放在循环里,
就是
每个人都有 100
张票
//
现在只有一趟火车,100
张票
MyTrain mytrain=new MyTrain();
//
这里的 i
就是 100
个人
for(int i=0;i<100;i++){
System.out.println(mytrain.fetch());
}
}
}
模拟并发,开线程
进程,在进程中可能并发的过程,并发的过程就是线程.
进程是一条火车道,每个火车都走自己的线,
线程:java 中的每一个程序抢票,模拟多线程抢票
Thread 线程类
线程是需要运行的 run 方法

代码详见:java第二十二课 · Fang-fang/方芳 的java - Gitee.com

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值