写入文件
FileWriter类:
FileWriter fw=new FileWriter("hello");//在workspace工作空间里创建文件,文件名为hello
FileWriter fw=new FileWriter("C:\\hello");//在C盘创建文件,文件名为hello
FileWriter fw=new FileWriter("C:\\hello.txt");//在C盘创建txt文件hello
注意:在相同位置已经有同名文件会覆盖原来的文件,即一个新建的空文件。 路径不对则会抛出异常。
BufferedWriter类:
BufferedWriter(Writer out)
这将创建一个使用默认大小的输出缓冲区的缓冲字符输出流。
BufferedWriter(Writer out, int sz)
这将创建一个新的缓冲字符输出流,该流使用给定大小的输出缓冲区。
常用代码
代码 | 作用 |
---|---|
close() | 关闭流,先刷新。 |
flush() | 刷新流。 |
write(char[] cbuf, int off, int len) | 写入字符数组的一部分。 |
write(int c) | 写一个字符 |
write(String s, int off, int len) | 写一个字符串的一部分。 |
newLine() | 写一行行分隔符。 |
案例:
File f2=new File("C:/b.txt");
if(!f2.exists()){
f2.createNewFile();
}
//定义一个字符输出流,F2文件写入内容
Writer out=new FileWriter(f2);
out.write(97);
out.write((int)'中');
char[] ch={'河','南','南','阳','农','业'};
//out.write(ch);
I
out.write(ch,0,2);
out.write("移动2103班");
out.write("abcdef",0,3);
out.flush();//字符输出流有缓冲区的概念,需要刷新缓冲区才更新到硬盘
out.close();
读取字符:read方法,每次可以读取一个字符的数据,提升为int类型,读取到文件末尾,返回-1,循环读取。
package HomeWork;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class FileReaderTest1 {
public static void main(String[] args) throws IOException {
//使用文件名称创建流对象
FileReader fileReader=new FileReader("read.txt");
//定义变量,保存数据
int b;
//循环读取
while ((b=fileReader.read())!=-1){
System.out.println((char)b);
}
//关闭资源
fileReader.close();
}
}
读取多个字符
import java.io.*;
import java.util.Arrays;
public class ReaderTest006 {
public static void main(String[] args) throws IOException {
//定义File对象
File f1=new File("D:/a.txt");
//字符输入流Reader
Reader in=new FileReader(f1);
//使用缓冲区读取多个字符
char[] buffer=new char[10];
//每次最多读取buffer数组长个字符,把读取到的字符存入buffer数组中,返回的是实际读取的字符数
int n=in.read(buffer);
System.out.println(n);
System.out.println(Arrays.toString(buffer));
char[] buffer1=new char[10];
int n1=in.read(buffer1);//每次最多读取buffer数组长个字符,把读取到的字符存入buffer数组中,返回的是实际读取到的字符数
System.out.println(n1);
System.out.println(Arrays.toString(buffer1));
}
}