JAVA IO
基本概念
I/O 这里的I和O指的是输入与输出
- 输入:Input 用来读取数据的
- 输出:Output 用来写出数据的
流的概念
java将输入与输出比喻为"流",英文:Stream.
就像生活中的"电流","水流"一样,它是以同一个方向顺序移动的过程.只不过这里流动的是字节(2进制数据).所以在IO中有输入流和输出流之分,我们理解他们是连接程序与另一端的"管道",用于获取或发送数据到另一端.
超类
-
java.io.InputStream是所有字节输入流的超类,里面定义了所有字节输入流都必须具备的读取字节的方法
-
int read()
读取一个字节,以int形式返回,该int值的”低八位”有效,若返回值为-1则表示EOF
-
-
int read(byte[] data)
尝试最多读取给定数组的length个字节并存入该数组,返回值为实际读取到的字节量。
-
java.io.OutputStream是所有字节输出流的超类,里面定义了所有字节输出流都必须具备的写出字节的方法
-
void write(int d)
写出一个字节,写的是给定的int的”低八位”
-
-
void write(byte[] data)
将给定的字节数组中的所有字节全部写出
-
void write(byte[] data,int offset,int len)
将给定的字节数组中从offset处开始的连续len个字节写出
文件流
概念
文件流是用来链接我们的程序与文件之间的"管道",用来读写文件数据的流。
文件流分为
- 文件输入流java.io.FileInputStream:读取文件数据的流
- 文件输出流java.io.FileOutputStream:写入文件数据的流
- 文件流是继承自InputStream和OutputStream
文件输出流
java.io.FileOutputStream使用文件输出流向文件中写入数据
构造器
FileOutputStream(String path)
创建文件输出流对指定的path路径表示的文件进行写操作,如果该文件不存在则将其创建出来
FileOutputStream(File file)
创建文件输出流对指定的file对象表示的文件进行写操作,如果该文件不存在则将其创建出来
例
package io;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
/**
* JAVA IO
*
*/
public class FOSDemo {
public static void main(String[] args) throws IOException {
/*
FileOutputStream(String path)
FileOutputStream(File file)
*/
//向当前项目目录下的文件fos.dat中写入数据
FileOutputStream fos = new FileOutputStream("./fos.dat");
// File file = new File("./fos.dat");
// FileOutputStream fos = new FileOutputStream(file);
/*
void write(int d)
用来向文件中写入1个字节
计算机底层只有2进制。1和0
8421
0000 0 0001 1
0001 1 0010 2
0010 2 0100 4
0011 3 1000 8
0100 4
0101 5 1110 14
0110 6
0111 7 01111111 +127 1字节 1byte
1000 8 10000000 -
1001 9
1010 10
1011 11
1100 12
1101 13
1110 14
1111 15
write方法会将给定的int值对应的2进制的"低八位"写出
fos.write(1)
int型1的2进制:
00000000 00000000 00000000 00000001
^^^^^^^^
写出的数据
fos.dat文件中内容:
00000001
write(2)
2的2进制
00000000 00000000 00000000 00000010
^^^^^^^^
写出的数据
fos.dat文件中内容:
00000001 00000010
*/
fos.write(1);
fos.write(2);
//当IO操作完毕后要关闭
fos.close();
}
}