【java io流】

发布于:2023-01-12 ⋅ 阅读:(434) ⋅ 点赞:(0)

输出流写数据步骤:

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():一次读取一行数据,但是不读取换行符


网站公告

今日签到

点亮在社区的每一天
去签到