一、BufferedWriter写入文件 + BufferedReader读取文件
缓冲字符(BufferedWriter )是一个字符流类来处理字符数据。不同于字节流(数据转换成字节),你可以直接写字符串,数组或字符数据保存到文件。
BufferedReader是为了提供读的效率而设计的一个包装类,它可以包装字符流。可以从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
package javaTextCode;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class Test {
public static void main(String[] args) throws Exception {
String line1 = "第一行";
String line2 = "第二行";
String line3 = "第三行";
try {
File dir = new File("C://tmp-file/text.txt");
//按字符写入
BufferedWriter bw = new BufferedWriter(new FileWriter(dir));
bw.write(line1);
//换行
bw.newLine();
bw.write(line2);
bw.newLine();
bw.write(line3);
bw.close();
// 按行读取
BufferedReader reader = new BufferedReader(new FileReader(dir));
String str;
while ((str = reader.readLine()) != null) {
System.out.println(str);
}
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
二、FileOutputStream写入文件 + Scanner读取文件
文件输出流(FileOutputStream)是一种用于处理原始二进制数据的字节流类。为了将数据写入到文件中,必须将数据转换为字节,并保存到文件。
Scanner是从JDK1.5开始提供的API,特点是可以按行读取、按分割符去读取文件数据,既可以读取String类型,也可以读取Int类型、Long类型等基础数据类型的数据。
package javaTextCode;标签:文件,java,String,读写操作,io,new,import,读取 From: https://www.cnblogs.com/huhx-02/p/16903712.html
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner;
public class Test {
public static void main(String[] args) throws Exception {
String line1 = "第一行,abc";
String line2 = "第二行,efg";
String line3 = "第三行,gg";
// 获取当前平台的行分隔符
String separator = System.getProperty("line.separator");
File dir = new File("C://tmp-file/text.txt");
// 按字节写入
try (FileOutputStream fos = new FileOutputStream(dir)) {
fos.write(line1.getBytes());
fos.write(separator.getBytes());
fos.write(line2.getBytes());
fos.write(separator.getBytes());
fos.write(line3.getBytes());
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
// Scanner读取
try (Scanner sc = new Scanner(dir)) {
sc.useDelimiter(",");
while (sc.hasNext()) {
System.out.println(sc.next());
}
} catch (IOException e) {
e.printStackTrace();
}
}
}