1.创建txt文件
例如在C:\Users\ASUS1\Desktop创建一个叫newfile的txt文件。
public class testcreate {
public static void main(String[] args) {
try {
File file=new File("C:\\Users\\ASUS1\\Desktop\\newfile.txt");
file.createNewFile();
}catch(IOException e){
e.printStackTrace();
}
}
}
有关于输出流、输入流、File的使用都要在*try{ }catch{ }*中进行。
2.读txt文件
这里我采用的是FileReader和BufferedReader的套接。
FileReader file=new FileReader("C:\\Users\\ASUS1\\Desktop\\newfile.txt");
BufferedReader br=new BufferedReader(file);
简化一点的写法为
BufferedReaderbr=new BufferedReader(new FileReader("C:\\Users\\ASUS1\\Desktop\\newfile.txt"));
BufferedReader类中定义了一个方法读一行字符返回,为readLine(),每读一行就自动换行。
(1)读字符串
假定文件内容为上图所示,依次读取每一行字符串代码为
try {
BufferedReader br=new BufferedReader(new FileReader("C://Users//ASUS1//Desktop//newfile.txt"));
String str1=br.readLine();//readLine()读入一行后会自动换行
String str2=br.readLine();
br.readLine();//利用readLine()自动换行特性跳过第三行
String str3=br.readLine();
br.close();
}catch(IOException e){
e.printStackTrace();
}
(2)读数字
try {
BufferedReader br=new BufferedReader(new FileReader("C://Users//ASUS1//Desktop//newfile.txt"));
String str=br.readLine();
int value = Integer.parseInt(str);
br.close();
}catch(IOException e){
e.printStackTrace();
}
*Integer.parseInt()*作用是将字符串转化为数值,该程序运行后value=1.
3.写文件
try {
FileWriter write=new FileWriter("C:\\Users\\ASUS1\\Desktop\\newfile.txt");
BufferedWriter bw=new BufferedWriter(write);
bw.write("hello\n");
bw.write("world\n");
bw.close();
write.close();
}catch(IOException e){
e.printStackTrace();
}
上述方法写文件时每次都会对原文件内容进行覆盖。
FileWriter write=new FileWriter("C:\\Users\\ASUS1\\Desktop\\newfile.txt",true);
简单在文件名后加true就能从上次内容后继续写,不会覆盖原文件之前的内容。