java基础之读写文件
1.覆盖写入
package javaDemoOne;
import java.io.*;
import java.util.Scanner;
/**
* java读写文件 创 写 关
*/
public class Demo01 {
public static void main(String[] args) throws IOException {
//1.创建一个FileWriter文件,如果不存在则自动创建
FileWriter fr =new FileWriter("a.txt");
//2.将字符串写入文件
System.out.println("www");
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine();
fr.write(string);
//3.关闭close流
fr.close();
}
}
2.追加写入
package javaDemoOne;
import java.io.*;
import java.util.Scanner;
/**
* java读写文件 创 写 关
* windows \r\n 换行
* MacOs \n
* Linux \n
*/
public class Demo01 {
public static void main(String[] args) throws IOException {
//1.创建一个FileWriter文件,如果不存在则自动创建
//FileWriter(String 文件路径名,boolean true)第二个参数如果是true那么就会追加写入
FileWriter fr =new FileWriter("a.txt",true);
//2.将字符串写入文件
System.out.print("写入数据:");
Scanner scanner = new Scanner(System.in);
String string = scanner.nextLine();
fr.write(string);
//3.关闭close流
fr.close();
}
}
3.读取单个字符
package javaDemoOne;
import java.io.*;
import java.util.Scanner;
/**
* java读写文件 创 读 关
*/
public class Demo01 {
public static void main(String[] args) throws IOException {
// 1.创建一个FileReader文件 文件名不存在
FileReader fd = new FileReader("a.txt");
// 2.读出文件
System.out.print("读取第一个字:");
int gg = fd.read();
System.out.println(gg);
//每次使用就读取下一次
int hh;
System.out.print("读取剩余全部:");
while ((hh = fd.read()) != -1) {
System.out.print((char)hh+" ");
}
// 3.关闭close流
fd.close();
}
}
4.数组读取
package javaDemoOne;
import java.io.*;
import java.util.Scanner;
/**
* java读写文件 创 读 关
*/
public class Demo01 {
public static void main(String[] args) throws IOException {
// 1.创建一个FileReader文件 文件名不存在
FileReader fd = new FileReader("a.txt");
// 2.读出文件
char[] buff = new char[10];
int len = fd.read(buff);
System.out.println("读取了有效字符的个数:"+len);
String str = new String(buff);
System.out.println("读取的所有字符在buff数组内的显示:"+str);
len = fd.read(buff);
System.out.println("读取了有效字符的个数:"+len);
str = new String(buff);
System.out.println("读取的所有字符在buff数组内的显示:"+str);
//因为数组buff未覆盖所以显示了后面的内容
// 3.关闭close流
fd.close();
}
}
5.BuffereWriter写入
package javaDemoOne;
import java.io.*;
import java.util.Scanner;
/**
* BuffereReader里面有一个长度为8192的char[]的字符数组缓冲区使用 如果缓冲数组满了就统一写入硬盘中
* 如果关闭流数组美满那么就将剩余的写入硬盘
*
*/
public class Demo01 {
public static void main(String[] args) throws IOException {
// 1.创建一个普通的FileWriter文件 文件名不存在
FileWriter fd = new FileWriter("a.txt");
// 2.将FileWriter对象传递给BuffereWriter构造方法
BufferedWriter buf = new BufferedWriter(fd);
// 3.写入
buf.write("hello");
buf.newLine();// 换行
buf.write("hello");
// 4.关闭
buf.close();
}
}
BuffereReader一样的