Java文件的读取和写入

Java文件的读取和写入属于java的基础知识,也是软件构造实验遇到的第一个问题。

1 文件的读取

1.1 单纯字符的读入——FileReader

我们选择FileReader.read()函数。
此方法比较适合读取一段单纯的字符串。

char[] string=new char[100];//建一个数组储存字符
FileReader fr = new FileReader("text.txt");//打开文件
while((fr.read(string))!=-1) {
//String(char[] cbuf,a,num),从cbuf的位置a开始取出连续的num个字符		
	System.out.println(new String(string,0,num));
}
for(int i=0;i<10;i++) {
		System.out.print(string[i]);
}

读取文件路径可以有两种方式:绝对路径和相对路径
绝对路径:比如”C:\Users\Desktop\text.txt",可以通过文件属性获取
相对路径:比如"src\……"即文件相对src的位置,以eclipse为例很容易就能通过左栏获取。

1.2 整行读入——BufferedReader

可以用.readLine()逐行读取

int position=0;
String[] bufstring=new String[1024];//建立一个String数组存放每一行的字符串
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]);
}

注:其实每一次读取文件的时候会伴随文件是否存在的异常处理,可以选择try-catch的环绕,也可以throw IOException
当然,try-catch及时处理异常情况更为推荐
比如:

try {
	br = new BufferedReader(new FileReader(file));
	while ((str = br.readLine())!= null) {
		listStr.add(str);
	}
} catch (FileNotFoundException e) {
	e.printStackTrace();
}catch (IOException e) {
	e.printStackTrace();
}

1.3 处理分隔符

1.3.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];
	}
}

1.3.2 采用.split()方法

//读取文件
FileReader reader=new FileReader(file);
BufferedReader bReader= new BufferedReader(reader);		
StringBuilder sb= new StringBuilder();
String s;
while((s=bReader.readLine())!=null) {
	sb.append(s+"\n");
}
bReader.close();
//处理字符串
String str=sb.toString();
String[]line=str.split("\n");//存放每行的内容
String[][] Map=new String[line.length][];
//分割成字符串类型矩阵并判断正则数
for(int r=0;r<line.length;r++) {	
Map[r] = line[r].split("\t"); //用\t分割字符串

2 文件的写入

将一个二维矩阵写入文件:

File file=new File("src\\P1\\txt\\6.txt");
Writer out=new FileWriter(file);
	for(int x=0;x<n;x++) {
		for(int y=0;y<n;y++) {
			out.write(magic[x][y]+"\t");
		}
		out.write("\n");
	}
	out.close();

参考:

https://blog.csdn.net/Alexwym/article/details/81078417?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值