【Java】IO进程
来源:互联网 发布:windows安装python3 编辑:程序博客网 时间:2024/06/15 22:46
IO
IO: 输入输出 — 写/读
文件
(1)java里IO操作最多的对象
(2)java.io.File类封装了文件对象File类
- File对象代表一个路径下的文件或文件夹
- File类创建
- 绝对路基
File f1 =new File("C:\qin.txt");
- 相对路径
File f2 =new File("qin.txt");
- 拼接路径
File f3 =new File("C:\","qin.txt"); \\文件 c:\qin.txt
- 绝对路基
File对象常用方法
和文件名相关
String getName()String getPath()String getAbsolutePath()String getParent()boolean renameTo(File newName)
文件检测
boolean exists()boolean canWrite()boolean canRead()boolean isFile()boolean isDirectory()boolean isAbsolute()
获取常规文件信息
long lastModified()long length()boolean delete()
目录操作
boolean mkdir()String[] list()
IO流
- java的IO都是通过流来实现的。
流:一种有顺序的,有起点和终点的字节或字符集合。
本质:流就是数据管道流的分类
按照输入输出分类
- 输入流 :从文件里读取数据,写入管道
- 输出流 :从管道里读取数据,写入文件
按照操作单位
- 字节流: 按照字节为单位,传输 — 所有文件通吃
- 字符流: 按照字符为单位,传输 — 只能对字符文件有效,更有效的发挥缓存区的作用
字节流:InputStream类 和 OutputStream类
InputStream类是所有字节流输入类的父类
其中包含的主要方法:public void close() throws IOException功能:关闭当前流对象,释放资源public int read(byte[] b) throws IOException功能:按照流中的数据存储顺序依次进行读取,最小单位是字节(byte)public long skip(long n) throws IOException功能:跳过和丢弃此输入流中数据的 n 个字节
OutputStream类是所有字节输出类的父类
其中包含的主要方法:public int flush() throws IOException功能:将当前流对象中的缓冲数据强制输出,即实现立即输出效果。public void close() throws IOException功能:关闭当前流对象,释放资源public int write(byte[] b) throws IOException功能:按照数组b存储顺序依次写入流中,最小单位是字节(byte)
字符流
- Reader类是所有字符流输入类的父类
Reader类包含的主要方法与InputStream类似,功能大致相同,最大区别是读取数据的单位是字符(char) - Writer类是所有字符流输出类的父类
Writer类包含的主要方法与OutputStream类似,功能大致相同,最大区别是写入数据的单位是字符(char)
Writer相比OutputStream增加的部分方法:
append 方法:将数据写入流的末尾
write方法:增加了写入字符串的方法
- Reader类是所有字符流输入类的父类
有缓冲读写 BufferedReader/BufferedWriter
在IO操作时,为了提高IO类的读写效率,提供了一类缓冲流,以便提高读写效率。
BufferedInputStream/BufferedOutputStream
BufferedReader/BufferedWriter
利用BufferedReader/BufferedWriter实现文件的拷贝操作BufferedReader fbufread = new BufferedReader(new FileReader("d:\\a.txt"));BufferedWriter fbufwrite = new BufferedWriter(new FileWriter("d:\\b.txt"));String buf = null;while((buf = fbufread.readLine()) != null){ fbufwrite.write(buf); fbufwrite.write("\r\n");}
验证:
- IO操作的计数
- System.currentTimeMillis 分别获取读取前和读取后的时间
进程和线程
进程和线程
进程:当前内存中运行的应用程序,有自己独立的内存空间。
- 进程可以启动多个多个线程,必须有一个主线程。
线程:是进程中的一个单独执行流程。
- 属于进程,也叫轻量级进程
- 没有独立内存空间,同一个进程下的线程共享内存空间和资源
- 为了实现并发,宏观上是并发的,微观上是串行的。
Java线程模型
- 代码执行需要三个条件
- cpu
- 代码(指令)
- 数据
- 代码执行需要三个条件
java线程的创建
- 继承Thread类,重写run方法(方法run( ) 称为线程体)
- 实现runnable接口,重写run方法
两种线程创建方式的比较
使用Runnable接口
可以将CPU,代码和数据分开,形成清晰的模型;
还可以从其他类继承;保持程序风格的一致性。
直接继承Thread类
不能再从其他类继承;
编写简单,可以直接操纵线程,无需使用Thread.currentThread()。
线程的5中状态
- 创建状态 — 创建了一个线程对象
- 就绪状态 — 执行了start方法,等待获得cup执行run方法
- 执行状态 — 当前线程获得cpu资源,执行run方法
- 阻塞/等待/退让状态 — run方法没有执行完,等待IO操作、执行join方法、执行了wait方法,yield方法,主动放弃cup,给其他线程
- 死亡状态 — 线程释放
变化:
- 创建状态 — new方法
- 创建–>就绪 — start方法
- 就绪–>运行 — 获得cpu
- 运行–>等待 — sleep、join、wait 、yield方法,主动放弃cup
- 等待–>就绪 — 睡眠时间到,另外一个进程执行文,等待事件完成、
- 运行–>死亡
- 正常死亡 run方法运行完成
- 调用了stop方法 (不推荐使用,容易造成死锁)
0 0
- 【Java】IO进程
- Java IO 系列----Java程序与其他进程的数据通信
- IO:Java虚拟机读写其他进程的数据(1)
- IO:Java虚拟机读入其他进程的数据(2)
- Java I/O 学习笔记(6) 进程IO流
- Java 入门 之 IO操作与进程、线程
- 【IO进程】进程间通信
- 查看进程IO
- 4IO进程
- 【Java-IO】IO入门
- Java IO:IO框架
- 【IO】java IO 总结
- java IO
- IO.java
- JAVA IO
- JAVA IO
- java IO
- java io
- spark SQL实例(load和save操作)
- the Root Of AVL
- I春秋360_Reverse_登山_Writeup
- javascript --- 使用btoa和atob来进行Base64转码和解码
- 实现读写分离的web工程
- 【Java】IO进程
- JSP自定义标签由浅到深详细讲解(全)
- 在eclipse中用Maven搭建Web项目
- 首次使用idea总结
- VS与SVN的交互VisualSVN
- 1024. 科学计数法
- 数据结构(C语言)学习之路(1)——绪论
- 58到家MQ如何快速实现流量削峰填谷
- Maven-maven介绍&maven安装配置&创建maven工程&M2Eclipse