概述
一、文件类的继承关系
二、文件读取
1.按字符读取
如果我们要取的数据基本单位是单个字符,那么用这种方法读取文件就比较适合。比如:txt文件如下,我们需要取出其中的每一个字母存入一个数组中。
利用FileReader中的read()方法。FileReader.read(char[] cbuf),参数——cbuf是目标缓冲区;返回——读取的字符串数量,如果已达到末尾则返回-1。
实现如下:
int num=0;
char[] buf=new char[1024];
//打开文件
FileReader fr = new FileReader("text.txt");
//取出字符存到buf数组中
while((num=fr.read(buf))!=-1) {
//String(char[] cbuf,a,b),从cbuf的位置a开始取出连续的b个char组成字符串
System.out.println(new String(buf,0,num));;
}
//检测一下是否取到相应的数据
for(int i=0;i<10;i++) {
System.out.print(buf[i]+" ");
}
2.按行读取
如果我们想要读取的是一个字符串,前面所讲的第一种方法显然是不适用的,因此我们来介绍下另一种方法——按行读取数据。我们可以看下以下文件
每一行保存一个字符串,这样我们在读取文件的时候只需要按行读取即可。
利用BufferedReader中的readLine()方法。BufferedReader.readLine(),没有参数,返回——包含该行内容的字符串,不包含任何行终止符,如果已到达流末尾,则返回 null。
int position=0;
String[] bufstring=new String[1024];
//打开带读取的文件
BufferedReader br = new BufferedReader(new FileReader("text.txt"));
String line=null;
while((line=br.readLine())!=null) {
bufstring[position]=line;
position++;
}
br.close();//关闭文件
for(int i=0;i<position;i++) {
System.out.println(bufstring[i]);
}
3.读取带分隔符的字符串
前面介绍的第一种方法不能读取字符串,第二种方法虽然可以读取字符串,但是由于每一行只能储存一个字符串,难免会觉得有些浪费空间。因此我们就会想,有没有一种能利用分割符来分割读取字符串的方法。JAVA中好像是没有这种API,但是我们如果对第一种方法进行一些后续处理,也可以达到这种效果。比如我们要读取的文件如下:
很明显,分隔符就是中文字符“,”。我们首先把文件中的字符都读取到字符数组buf中,再遍历字符数组,每遇到一个分隔符就保存一次字符串。
代码如下:
//依次读取一个字符,读到最后没有了就返回-1。有分隔符号
ArrayList<String>stringlist=new ArrayList();//储存待读取的字符串
FileReader fr = new FileReader("text.txt");
while((num=fr.read(buf))!=-1) {
System.out.println(new String(buf,0,num));;
}
//对字符串进一步处理
String temp="";
for(int i=0;i<buf.length;i++) {
if(buf[i]==',') {//注意文件中的分隔符是中文还是英文字符
stringlist.add(temp);
temp="";
}else {
temp+=buf[i];
}
}
最后
以上就是眯眯眼冰棍为你收集整理的文件的读取与写入的全部内容,希望文章能够帮你解决文件的读取与写入所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复