参考来源 点击这里
值类型与引用类型
1 | int num=10; |
从上图中可以看出基本数据类型保存的是值,而引用数据类型保存的是指向对象的地址信息,不是值
努力的,都将以另一种方式呈现。
JDK1.8 为了加强接口的实用能力,使得接口可以存在具体的方法,前提是方法需要被 default 和 static 修饰
1 | public interface D { |
我们对文件的操作,大多都是通过 IO 流来操作的,那什么是流呢?
和水流类似,它只是变成了一组有顺序,连续字节的数据流,并且有开始和结束的位置,并且它的方向很重要。透明通常利用方向来区别它们的作用。
通过字节的
方式读取文件,适合读取所有
类型的文件(图像、视频等),
全字符请考虑 FileReader
第一种:
通过打开与File类对象代表的实际文件的链接来创建FileInputStream流对象
1 | public FileInputStream(File file) throws FileNotFoundException{} |
注意:
若File类对象的所代表的文件不存在;不是文件是目录;或者其他原因不能打开的话,则会抛出 FileNotFoundException
第二种:
通过指定的字符串参数来创建File类对象,而后再与File对象所代表的实际路径建立链接创建FileInputStream流对象,发现该构造方法等于是在第一个构造方法的基础上进行延伸的,因此规则也和第一个构造方法一致
1 | public FileInputStream(String name) throws FileNotFoundException |
读取数据到指定的字节数组,并且返回此时读取到的长度,如果达到文件的末尾返回 -1
读取数据的时候我们分为 4 步骤
示例代码如下:
1 | //1. 创建源 |
字节数组输入流,在内存中创建了一个字节数组,将输入流中读取的数据保存到字节数组的缓存区中.也就是说字节数组输入流将读取数据放到字节数组缓冲区中
第一种:
通过打开与File类对象代表的实际文件的链接来创建FileInputStream流对象
1 | public FileInputStream(File file) throws FileNotFoundException{} |
注意:
若File类对象的所代表的文件不存在;不是文件是目录;或者其他原因不能打开的话,则会抛出 FileNotFoundException
第二种:
通过指定的字符串参数来创建File类对象,而后再与File对象所代表的实际路径建立链接创建FileInputStream流对象,发现该构造方法等于是在第一个构造方法的基础上进行延伸的,因此规则也和第一个构造方法一致
1 | public FileInputStream(String name) throws FileNotFoundException |
读取数据到指定的字节数组,并且返回此时读取到的长度,如果达到文件的末尾返回 -1
读取数据的时候我们分为 4 步骤
示例代码如下:
1 | //1. 创建源 |
将基础的输入流,原始的数据类型w写入文件
1 | public class FileOutputStream extends OutputStream{} |
第一种:
创建FileOutputStream流以写入数据到File对象所代表的文件,同时创建一个新的FileDescriptor对象来表示与该文件的关联(源码中会new一个该对象)
1 | public FileOutputStream(File file) throws FileNotFoundException{} |
第二种:
创建FileOutputStream流以写入数据到File对象表示的文件。 如果第二个参数为true,则字节将写入文件的末尾而不是开头。创建一个新的FileDescriptor对象来表示此文件连接。其抛异常的规则与第一个构造函数一致
1 | public FileOutputStream(File file,boolean append) throws FileNotFoundException{} |
若第二个参数为真,则意味着会写入字节到文件的末尾,意味着追加内容,若为假,则是写入字节到文件的开头,意味着是覆盖。(默认是覆盖)
第三种:
创建FileOutputStream流以写入数据到指定路径所代表的文件,同时创建一个新的FileDescriptor对象来表示与该文件的关联(源码中会new一个该对象)
1 | public FileOutputStream(String name) throws FileNotFoundException{} |
第四种:
创建FileOutputStream流以写入数据到指定路径所代表的文件,同时创建一个新的FileDescriptor对象来表示与该文件的关联(源码中会new一个该对象), 如果第二个参数为true,则字节将写入文件的末尾而不是开头
1 | public FileOutputStream(String name,boolean append) throws FileNotFoundException |
注意:
指定一个字节数组 b,然后写入指定的长度
写入数据的时候我们分为 4 步骤
1 | //1、创建源 |
通过字节的方式写出或追加数据到文件,适合所有类型的文件(图像、视频等),全字符请考虑 FileWriter
1 | public class FileOutputStream extends OutputStream{} |
第一种:
创建FileOutputStream流以写入数据到File对象所代表的文件,同时创建一个新的FileDescriptor对象来表示与该文件的关联(源码中会new一个该对象)
1 | public FileOutputStream(File file) throws FileNotFoundException{} |
第二种:
创建FileOutputStream流以写入数据到File对象表示的文件。 如果第二个参数为true,则字节将写入文件的末尾而不是开头。创建一个新的FileDescriptor对象来表示此文件连接。其抛异常的规则与第一个构造函数一致
1 | public FileOutputStream(File file,boolean append) throws FileNotFoundException{} |
若第二个参数为真,则意味着会写入字节到文件的末尾,意味着追加内容,若为假,则是写入字节到文件的开头,意味着是覆盖。(默认是覆盖)
第三种:
创建FileOutputStream流以写入数据到指定路径所代表的文件,同时创建一个新的FileDescriptor对象来表示与该文件的关联(源码中会new一个该对象)
1 | public FileOutputStream(String name) throws FileNotFoundException{} |
第四种:
创建FileOutputStream流以写入数据到指定路径所代表的文件,同时创建一个新的FileDescriptor对象来表示与该文件的关联(源码中会new一个该对象), 如果第二个参数为true,则字节将写入文件的末尾而不是开头
1 | public FileOutputStream(String name,boolean append) throws FileNotFoundException |
注意:
指定一个字节数组 b,然后写入指定的长度
写入数据的时候我们分为 4 步骤
1 | //1、创建源 |
对byte类型数据进行写入的类 相当于一个中间缓冲层,将类写入到文件等其他outputStream。它是对字节进行操作,属于内存操作流
1 | public class FileOutputStream extends OutputStream{} |
第一种:
创建FileOutputStream流以写入数据到File对象所代表的文件,同时创建一个新的FileDescriptor对象来表示与该文件的关联(源码中会new一个该对象)
1 | public FileOutputStream(File file) throws FileNotFoundException{} |
第二种:
创建FileOutputStream流以写入数据到File对象表示的文件。 如果第二个参数为true,则字节将写入文件的末尾而不是开头。创建一个新的FileDescriptor对象来表示此文件连接。其抛异常的规则与第一个构造函数一致
1 | public FileOutputStream(File file,boolean append) throws FileNotFoundException{} |
若第二个参数为真,则意味着会写入字节到文件的末尾,意味着追加内容,若为假,则是写入字节到文件的开头,意味着是覆盖。(默认是覆盖)
第三种:
创建FileOutputStream流以写入数据到指定路径所代表的文件,同时创建一个新的FileDescriptor对象来表示与该文件的关联(源码中会new一个该对象)
1 | public FileOutputStream(String name) throws FileNotFoundException{} |
第四种:
创建FileOutputStream流以写入数据到指定路径所代表的文件,同时创建一个新的FileDescriptor对象来表示与该文件的关联(源码中会new一个该对象), 如果第二个参数为true,则字节将写入文件的末尾而不是开头
1 | public FileOutputStream(String name,boolean append) throws FileNotFoundException |
注意:
指定一个字节数组 b,然后写入指定的长度
写入数据的时候我们分为 4 步骤
1 | //1、创建源 |
1 | BufferedReader(Reader in) |
和上面的输入流类似,new出新对象的时候需要传入Reader的子类流,如下
1 | bufferRead = new BufferedReader(new InputStreamReader(new FileInputStream(path))); |
1 | bufferRead = new BufferedReader(new InputStreamReader(new FileInputStream(path))); |
InputStreamReader类是从字节流到字符流的桥接器:它使用指定的字符集读取字节并将它们解码为字符。 它使用的字符集可以通过名称指定,也可以明确指定,或者可以接受平台的默认字符集。每次调用一个InputStreamReader的read()方法都可能导致从底层字节输入流中读取一个或多个字节。 为了实现字节到字符的有效转换,可以从基础流中提取比满足当前读取操作所需的更多字节。
和上面的输入流类似,new出新对象的时候需要传入Writer的子类流,如下
1 | bufferWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path, true))); |
1 | bufferWriter = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(path, true))); |
public void newLine() throws IOException
写入一个行分隔符。
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
1 | $ hexo new "My New Post" |
More info: Writing
1 | $ hexo server |
More info: Server
1 | $ hexo generate |
More info: Generating
1 | $ hexo deploy |
More info: Deployment