IO流的学习:
io流:用于处理设备上的数据。
设备:硬盘,内存,键盘录入等。
IO有具体的分类:
1.根据我们处理的数据类型不同:字节流和字符流
2.根据流向的不同:又分为输入流和输出流。
字符流的由来:
因为文件编码的不同,而有了对字符进行高效操作的字符流对象。
原理:其实就是基于字节流读取字节时,去查了指定的码表。
字节流和字符流的区别:
1,字节流读取的时候,读到一个字节就返回一个字节。
字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8 码表中是3个字节)时。
先去查指定的编码表,将查到的字符返回。
2,字节流可以处理所有类型数据,如图片,mp3,avi。
而字符流只能处理字符数据
我们得出一个结论:只要是处理纯文本数据,就要优先考虑使用字符流。除此之外都用字节流。
IO的体系。所具备的基本功能就有两个:读 和 写。
1,字节流 InputStream(读),OutputStream(写)。
2,字符流: Reader(读),Writer(写)。
java中流根据流的流向把流分为两种:
输入流:
InputStream , FileInputStream , FileReader
输出流:
OutputStream , FileOutputStream ,FileWriter
如何区分输入还是输出流:
看类名是否存在Input或者Reader 如果有就是输入流 ,反之如果有Output或者Wirter 就是输出流
什么时候使用输出流什么时候使用输入流:
需要以程序为参考点: 如果数据是读取到程序这个时候使用输入流,反之如果数据是写入到硬盘中需要使用的是输出流。
根据流的操作:
1.字节流: 字节流操作的数据是二进制数据,不会做任何操作。
特点:存在Input或者Output的流
2.字符流: 字符流操作的数据也是二进制数据,会将二进制数据转换为我们能够看得懂的字符。
97--> a
字符流 = 字节流 + 解码
特点:存在Reader或者Wirter
先来学习字节流:
InputStream:是所有字节输入流的超类 ,抽象的类
FileInputStream : 文件字节输入流,用来读取文件中的 数据到内存中。
BufferedInputStream : 自带有一个缓冲区 ,内部会帮我们定义一个byte类型的数组
FileInputStream的使用步骤:
1.找到你需要读取的目标文件
2.建立通道
3.读取数据 read() 一次只能读一个字节
4.关闭资源,释放资源。
FileOutputStream 使用注意点:
1.写入数据的时候如果该文件存在会覆盖当前文件的内容
2.如果没有指定的文件,他会默认创建一个。
3.如果需要追加数据 需要使用FileOutputStream(File file, boolean append)
构造方法。append 如果true 就表示追加。
BufferedOutputStream注意点:
1.写入数据的时候,必须要关闭资源或者调用flush()方法,才能将数据写入到指定的文件中。
2.输入字符流:
Reader:他是输入字符流的超类 ,也是一个抽象的类
InputStreamReader: 转换流 ---> 将s输入字节流转为输入字符流
FileReader: 文件字符流
BufferedReader: 缓冲字符输入流
3.ObjectOutputStream:对象流
将一个java中的对象写入到文件中。
ObjectOutputStream使用注意点:
1.必须要序列化的类才能通过对象流进行写入数据 ,实现 Serializable接口
2.读取数据的时候要保证serialVersionUID一致,否则就会读取失败
3.如果你不想让某个属性写入到文件中可以使用transient来修饰属性
4.Properties 实际是一个集合 --->Map 键值对
Properties存值也是采用键值对。 键和值都是字符串类型。
Properties作用: 用来创建配置文件和读取配置文件 jdbc
5.打印流: PrintStream. System.out --->标准输出流
二.线程:
1多线程概述
进程:
正在运行的程序,是系统进行资源分配和调用的独立单位。
每一个进程都有它自己的内存空间和系统资源。
线程:
是进程中的单个顺序控制流,是一条执行路径
一个进程如果只有一条执行路径,则称为单线程程序。
一个进程如果有多条执行路径,则称为多线程程序。
2.多线程
(1)多线程:一个应用程序有多条执行路径
进程:正在执行的应用程序
线程:进程的执行单元,执行路径
单线程:一个应用程序只有一条执行路径
多线程:一个应用程序有多条执行路径
多进程的意义?
提高CPU的使用率
多线程的意义?
提高应用程序的使用率
一个Java程序至少有几个线程?
至少有两个线程: 一个是main线程 , 垃圾回收线程。
3.使用线程的好处:
1.实现一个程序中执行多个任务
2.增强了cup的利用率。
4.使用线程不好的地方:
1.降低cup执行效率。
2.线程会出现线程安全问题
3.线程的死锁
4.会将降低这个线程的执行效率。
5.线程中常用的方法:
Thread(String name) 初始化线程的名字
getName() 返回线程的名字
setName(String name) 设置线程对象名
sleep() 线程睡眠指定的毫秒数。
getPriority() 返回当前线程对象的优先级 默认线程的优先级是5
setPriority(int newPriority) 设置线程的优先级 虽然设置了线程的优先级,但是具体的实现取决于底层的操作系统的实现(最大的优先级是10 ,最小的1 , 默认是5)
。 优先级只能提高线程执行的概率 1-10
currentThread() 返回CPU正在执行的线程的对象
io流:用于处理设备上的数据。
设备:硬盘,内存,键盘录入等。
IO有具体的分类:
1.根据我们处理的数据类型不同:字节流和字符流
2.根据流向的不同:又分为输入流和输出流。
字符流的由来:
因为文件编码的不同,而有了对字符进行高效操作的字符流对象。
原理:其实就是基于字节流读取字节时,去查了指定的码表。
字节流和字符流的区别:
1,字节流读取的时候,读到一个字节就返回一个字节。
字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8 码表中是3个字节)时。
先去查指定的编码表,将查到的字符返回。
2,字节流可以处理所有类型数据,如图片,mp3,avi。
而字符流只能处理字符数据
我们得出一个结论:只要是处理纯文本数据,就要优先考虑使用字符流。除此之外都用字节流。
IO的体系。所具备的基本功能就有两个:读 和 写。
1,字节流 InputStream(读),OutputStream(写)。
2,字符流: Reader(读),Writer(写)。
java中流根据流的流向把流分为两种:
输入流:
InputStream , FileInputStream , FileReader
输出流:
OutputStream , FileOutputStream ,FileWriter
如何区分输入还是输出流:
看类名是否存在Input或者Reader 如果有就是输入流 ,反之如果有Output或者Wirter 就是输出流
什么时候使用输出流什么时候使用输入流:
需要以程序为参考点: 如果数据是读取到程序这个时候使用输入流,反之如果数据是写入到硬盘中需要使用的是输出流。
根据流的操作:
1.字节流: 字节流操作的数据是二进制数据,不会做任何操作。
特点:存在Input或者Output的流
2.字符流: 字符流操作的数据也是二进制数据,会将二进制数据转换为我们能够看得懂的字符。
97--> a
字符流 = 字节流 + 解码
特点:存在Reader或者Wirter
先来学习字节流:
InputStream:是所有字节输入流的超类 ,抽象的类
FileInputStream : 文件字节输入流,用来读取文件中的 数据到内存中。
BufferedInputStream : 自带有一个缓冲区 ,内部会帮我们定义一个byte类型的数组
FileInputStream的使用步骤:
1.找到你需要读取的目标文件
2.建立通道
3.读取数据 read() 一次只能读一个字节
4.关闭资源,释放资源。
FileOutputStream 使用注意点:
1.写入数据的时候如果该文件存在会覆盖当前文件的内容
2.如果没有指定的文件,他会默认创建一个。
3.如果需要追加数据 需要使用FileOutputStream(File file, boolean append)
构造方法。append 如果true 就表示追加。
BufferedOutputStream注意点:
1.写入数据的时候,必须要关闭资源或者调用flush()方法,才能将数据写入到指定的文件中。
2.输入字符流:
Reader:他是输入字符流的超类 ,也是一个抽象的类
InputStreamReader: 转换流 ---> 将s输入字节流转为输入字符流
FileReader: 文件字符流
BufferedReader: 缓冲字符输入流
3.ObjectOutputStream:对象流
将一个java中的对象写入到文件中。
ObjectOutputStream使用注意点:
1.必须要序列化的类才能通过对象流进行写入数据 ,实现 Serializable接口
2.读取数据的时候要保证serialVersionUID一致,否则就会读取失败
3.如果你不想让某个属性写入到文件中可以使用transient来修饰属性
4.Properties 实际是一个集合 --->Map 键值对
Properties存值也是采用键值对。 键和值都是字符串类型。
Properties作用: 用来创建配置文件和读取配置文件 jdbc
5.打印流: PrintStream. System.out --->标准输出流
二.线程:
1多线程概述
进程:
正在运行的程序,是系统进行资源分配和调用的独立单位。
每一个进程都有它自己的内存空间和系统资源。
线程:
是进程中的单个顺序控制流,是一条执行路径
一个进程如果只有一条执行路径,则称为单线程程序。
一个进程如果有多条执行路径,则称为多线程程序。
2.多线程
(1)多线程:一个应用程序有多条执行路径
进程:正在执行的应用程序
线程:进程的执行单元,执行路径
单线程:一个应用程序只有一条执行路径
多线程:一个应用程序有多条执行路径
多进程的意义?
提高CPU的使用率
多线程的意义?
提高应用程序的使用率
一个Java程序至少有几个线程?
至少有两个线程: 一个是main线程 , 垃圾回收线程。
3.使用线程的好处:
1.实现一个程序中执行多个任务
2.增强了cup的利用率。
4.使用线程不好的地方:
1.降低cup执行效率。
2.线程会出现线程安全问题
3.线程的死锁
4.会将降低这个线程的执行效率。
5.线程中常用的方法:
Thread(String name) 初始化线程的名字
getName() 返回线程的名字
setName(String name) 设置线程对象名
sleep() 线程睡眠指定的毫秒数。
getPriority() 返回当前线程对象的优先级 默认线程的优先级是5
setPriority(int newPriority) 设置线程的优先级 虽然设置了线程的优先级,但是具体的实现取决于底层的操作系统的实现(最大的优先级是10 ,最小的1 , 默认是5)
。 优先级只能提高线程执行的概率 1-10
currentThread() 返回CPU正在执行的线程的对象
954

被折叠的 条评论
为什么被折叠?



