文件读写使用文件输入输出流类:FileInputStream(路径/文件名)【输入流,读文件】FileOutputStream(路径\文件名)【输出流,写文件】
写文件三部:
1.创建一个空白文件
1
FileOutputStream fileOut=new FileOutputStream("D:\\hello.text");
2.获取字节数据,例如键盘输入
1
//BufferedOutputStream的作用是将字节数据保存到缓冲区,可以提高效率
2
BufferedOutputStream buff=new BufferedOutputStream(System.in);//定义一个缓冲输入流对象,其内容来源于键盘
3.写入数据
1
//不能直接使用buff对象进行写入,必须先将buff中的内容转换成字节数组中,再将字节数组的数据写入到文件中
2
byte[] b=new byte[1024];//定义一个字节数组
3
buff.read(b);//将buff中的数据存入到字节数组中
4
fileOut.write(b);//将字节数组存入文件中。
5
下面是两个方法,分别用来读取文件和写入文件
读取文件
1
/**
2
* 读文件
3
* @param name 文件所在的地址和文件名字
4
* @return 一个输入缓冲流
5
*/
6
public static BufferedInputStream xwj(String name){
7
FileInputStream fileIn=null;
8
BufferedInputStream buff = null;
9
try {
10
fileIn = new FileInputStream(name);
11
buff=new BufferedInputStream(fileIn);
12
} catch (FileNotFoundException e) {
13
System.out.println("文件读取时异常");
14
e.printStackTrace();
15
}
16
System.out.println("文件读取完成");
17
return buff;
18
}
文件写入
1
/**
2
* 写文件
3
* @param name 要创建的文件的位置和名字
4
* @param buff 一个输入缓冲流
5
* @throws IOException
6
*/
7
public static void xwj(String name,BufferedInputStream buff){
8
//BufferedInputStream buff=new BufferedInputStream(System.in);//定义一个键盘输入流
9
10
FileOutputStream fileOut = null;
11
try {
12
fileOut = new FileOutputStream(name);//在指定地址创建一个指定文件名的文件
13
}catch (FileNotFoundException e) {
14
System.out.println("文件创建时异常");
15
e.printStackTrace();
16
}
17
18
byte[] buffb=new byte[1024]; //定义一个字节数组用于接受键盘输入的值
19
int i1=0;
20
21
do{
22
try {
23
i1=buff.read(buffb);//将输入缓冲流中的字节数据存储到字节数组中
24
} catch (IOException e) {
25
System.out.println("将输入缓冲流存储到字节数组时异常");
26
e.printStackTrace();
27
}
28
29
if(i1>=0){
30
try {
31
fileOut.write(buffb,0,i1); //将字节数组写入文件中
32
}catch (IOException e) {
33
System.out.println("文件写入时异常");
34
e.printStackTrace();
35
}
36
}
37
}while(i1>=0);
38
39
System.out.println("写入完成");
40
buff.flush();//清空缓冲流
41
buff.close();//关闭缓冲输出流,同时关闭文件
42
}