InputStream inputStream=null;
2.实例化文件输入流对象并指定要读取的文件路径
inputStream=new FileInputStream(path);
3.读取数据,一个字符一个字符的读(利用了循环)
int ch=0;
while((ch=inputStream.read())!=-1){
System.out.println("ch="+(char)ch);
}
3.读取数据,一次将文件中的数据全部读取到字节数组中. 适用于读取的文件比较小时.
int size=inputStream.available();//返回文件中字节数
byte[] buffer=new byte[size];
int len=inputStream.read(buffer);
System.out.println(new String(buffer)+"===>len="+len);
int len=0;
//从输入流中跳过两个字节,即从第三个字节开始读取
inputStream.skip(3);
inputStream.skip(-2);
while((len=inputStream.read(buffer))!=-1){
System.out.println(new String(buffer,0,len));
}
4.关闭输入流对象
inputStream.close();
//将输入流对象垃圾化
inputStream=null;
(String path=“src”+File.separator+“config.txt”;)
1.声明输出流对象
OutputStream outputStream=null;
2.实例化文件输出流对象并关联上要操作的文件
outputStream=new FileOutputStream(path);
3.向输出流中写出字节数据
outputStream.write(97);//将给定的整数通过查ASCII表后得到字符a存储到指定的文件中
byte[] data="欢迎你来学校吃饭!".getBytes();//使用本地编码表将字符串编码成字节数组并存入指定文件中
outputStream.write(data);//将字节数组中的数据写入到指定文件中
byte[] data="abcdefg".getBytes();
outputStream.write(data, 2, data.length-2);//将指定数组中的一部分数据写入到目标文件中
4.关闭输出流对象,释放底层资源
outputStream.close();
//将输出流垃圾化
outputStream=null;
1.声明读者对象
Reader reader=null;
2.实例化读者对象并关联上要操作的文件
reader=new FileReader(path);
3.读取数据
int len=0;
while((len=reader.read())!=-1){
System.out.println((char)len);
}
char[] data=new char[10];
while((len=reader.read(data))!=-1){
System.out.println(new String(data,0,len));
}
len=reader.read(data, 2, 4);
System.out.println(new String(data,2,len));
3.关闭字符输入流对象
reader.close();
//将字符输入流对象垃圾化
reader=null;
(字符数据并没有直接写入到目标设备中,而是写入到了缓冲区中。)
1.声明作家对象
Writer writer=null;
2.实例化作家对象并关联上要操作的文件
writer=new FileWriter(path);
3.执行写入操作,此时数据只是写入到了缓冲区中,并没有直接写入到目标设备中。
writer.write(new char[]{'a','b','c'});
writer.flush();//刷新缓冲区(马上将缓冲区中的数据写入到目标设备中).
writer.write(97);
writer.flush();
writer.write(new char[]{'w','e','l','c','o','m','e'}, 2, 5);
writer.flush();
writer.write("生当作人杰", 2, 3);
writer.flush();
4.关闭作家对象,关闭之前会首先刷新缓冲区,之后才关闭字符输出流对象.
writer.close();
将字符输出流对象垃圾化
writer=null;