一、File类
一般是通过这个类来定义一个flie对象然后获取一些文件属性,调取文件属性的方法如下图
二、文件字节流(FileOutputStream/FileInputstream名下的writer/reader)
1、创建文件字节输入\输出流
FileInputStream(String name)//name就是文件名
FileOutputStream(String name,boolean append)//就是创建一个流向文件的流,append默认为flase,表示是否在文件末尾作为开头创建流
FileInputStream(File file)//file就是用File file定义的文件对象
FileOutputsStream(File file,boolean append)//就是创建一个流向文件的流,append默认为flase,表示是否在文件末尾作为开头创建流
以上的内容都是创建一个类,对于他们的对象我们都以他们的大驼峰命名法大写的字母来命名
FileOutputStream FOS=new FileOutputStream
2、文件字节流的方法read()和write()
int read(byte []b ,int off,int len)//返回值是int是返回的一个整数,这个整数其实就代表了read从文件中读取了多少个字节。,当read读到了文件的最后一位时,就会返回-1(这一个特点经常用于while的使用之中)
byte[] b:是让你提供一个字节数组,用来存放你在文件中读取的信息。
int off:是让你提供一个整数,代表着read从字节数组b的下标为off开始存放数据。
int len:是让你提供一个整数,代表着字节数组的长度。
import java.io.*;
public class test {
public static void main(String[] args) throws IOException {
byte []c=new byte[24];
int b;
try {
FileInputStream fos=new FileInputStream("file");//文件中的内容是“我是文件的内容”
while((b=fos.read(c,0,24))!=-1)
{
String s=new String(c,0,24);
System.out.println(s);
}
fos.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
不过需要注意的就是,read会将文件中的信息转换成ascII码再输出这里就不用代码演示了,下面这段代码的结果是h1E的原因就是前两个write都将‘’里面的当作字节保存在文件中了,不过第三个write是将69当作ascII码所对应的字节了
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class test {
public static void main(String[] args) {
try {
FileOutputStream fos=new FileOutputStream("file");
try {
fos.write('h');
fos.write('1');
fos.write(69);
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}