JAVA读写文件
这个JAVA读写文件还是比C++麻烦点的(个人感觉),这里赶快总结一下
之前写的方法太麻烦了,这篇博客介绍了更简单的写法
读文件
FileReader reader=new FileReader(filePath);
BufferReader br=new BufferReader(reader);
String temp=br.readLine();
while(temp!=null){
String[] strings = temp.split(":|:");//这里我以中英文的冒号对字符串做了个分割,分隔符之间以|分开
temp=br.readLine();
}
reader.close();
br.close();
写文件
FileWriter writer= new FileWriter(filePath);
BufferWriter out=new BufferWriter(writer);
out.write("create table "+table+"( English varchar(30),Chinese varchar(10));
");
out.close();
writer.close();
读文件
InputStreamReader in=new InputStreamReader(new FileInputStream(filename),"utf8");
BufferedReader br=new BufferedReader(in);
String temp=br.readLine();
while(temp!=null){
String[] strings = temp.split(":|:");//这里我以中英文的冒号对字符串做了个分割,分隔符之间以|分开
temp=br.readLine();
}
in.close();
br.close();
- File:文件类
- FileInputStream:FileInputStream是Java语言中抽象类InputStream用来具体实现类的创建对象。FileInputStream可以从文件系统中的某个文件中获得输入字节,获取的文件可用性取决于主机环境。
- InputStreamReader是字节流与字符流之间的桥梁,能将字节流输出为字符流,并且能为字节流指定字符集,可输出一个个的字符;
- BufferedReader : 提供通用的缓冲方式文本读取,readLine读取一个文本行, 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取(直接使用InputStreamReader的话只能一个字符一个字符地读)
写文件
以写一个SQL文件为例:
File SQLFile=new File(filePath);//创建一个File对象
SQLFile.createNewFile();//这里就直接新建文件了,也可以先使用SQLFile.exists()来判断是否存在
BufferedWriter out=new BufferedWriter(new OutputStreamWriter(new FileOutputStream(SQLFile,false),"UTF-8"));//这里写false表示不以追加方式写入,而是覆盖以前的。要追加的话就选true
out.write("create table "+table+"( English varchar(30),Chinese varchar(10));
");
out.close();
和读类似,BufferWriter可以多字符地写,它以字符为单位写到OutputStreamWriter中,其再以字节的形式写给FileOutputStream,写到对应的File中