输出流写数据步骤:
A:创建输出流对象;
B:调用输出流对象的写数据方法,并刷新缓冲区;
C:释放资源。
public static void main (String[] args) throws IOException {
FileWriter fw = new FileWriter("d:\\a.txt");
//创建输出流对象(在d盘创建格文件名为a的txt文件
//如果没有写盘符,则该文件会创建在相对路径(即该java文件所在的项目路径下)
fw.write("Hello World");
//调用输出流写数据方法
fw.flush();
//刷新缓冲区
fw.close();
//释放资源,若不释放系统资源将一直处于被占用状态
}
.
相对路径:相对当前路径而言,在项目的根目录下(“a.txt”)
.
绝对路径:以盘符开始的路径(“d:\a.txt”)
- flush():先刷新缓冲区, 方法完成后流对象(stream)还可以继续使用
- close():先刷新缓冲区,再通知系统释放资源,完成后stream不可以使用
close()里也包含了刷新的动作,如果写入的数据较少可以不写flush()
在java里 \n 可以实现换行,但是在Windows系统识别的换行不是 \n 而是 \r\n
Windows :\r\n
Linux : \n
Mac : \r
io流实现数据的追加:
FileWriter fw = new FileWriter(" ", ture); //表示追加写入,默认是false
FileWriter写数据的方法
- void write(String str)
- void write(String str,int index,int len)
- void write(int ch)
- void write(char[] chs)
- void write(char[] chs,int index,int len)
io流续写数据的方法
public static void main (String[] args) throws IOException {
FileReader fr = new FileReader("a.txt", ture);
//
int ch;
//当 fr.read() = -1 时说明读取到了文件尽头
//ch = fr.read() 一次只能读取一个字符
while(ch = fr.read() != -1) {
System.out.print((char)ch);
}
fr.close();
}
io流读取文件的方法(1)
public static void main (String[] args) throws IOException {
FileReader fr = new FileReader("a.txt");
//同FileWriter对象的创建一样
int ch;
//当 fr.read() = -1 时说明读取到了文件尽头
//ch = fr.read() 一次只能读取一个字符
while(ch = fr.read() != -1) {
System.out.print((char)ch);
}
fr.close();
}
io流读取文件的方法(2)
public static void main (String[] args) throws IOException {
FileReader fr = new FileReader("a.txt");
// int read(char[] cbuf)
//一次读取一个字符数组的数据,返回的是实际读取的字符个数(即实际读取个数少于数组中输入个数时的情况)
char[] chs = new char[1024];//这里可以是1024及其整数倍
//在读取字符时换行符算两个字节(即/r/n)
int len;
while((len = fr.read(chs)) != -1) {
System.out.print(new String(chs, len));
}
fr.close();
io流复制文件文本方法(1)
public static void main (String[] args) throws IOException {
FileReader fr = new FileReader("a.txt");
FileWriter fw = new FileWriter("copy.txt");
int ch;
//当 fr.read() = -1 时说明读取到了文件尽头
while((ch = fr.read()) != -1) {
fw.writer(ch);
}
fw.close();
fr.close();
}
io流复制文件文本方法(2)
public static void main (String[] args) throws IOException {
FileReader fr = new FileReader("a.txt");
FileWriter fw = new FileWriter("copy.txt");
char[] chs = new char[1024];
int len;
//当 fr.read() = -1 时说明读取到了文件尽头
while((len = fr.read()) != -1) {
fw.writer(chs, 0, len);
}
fw.close();
fr.close();
}
- 缓冲流的特殊功能
BufferedWriter:
void newLine():写一个换行符,这个换行符由系统决定
换行符Windows:\r\n Mac:\r Unix:\n
BufferedReader(读取文档字符建议直接用这个):
String readLine():一次读取一行数据,但是不读取换行符