黑马程序员技术交流社区
标题: API基础学习(三)(IO流) [打印本页]
作者: zjj5669436182 时间: 2017-11-26 21:36
标题: API基础学习(三)(IO流)
API基础学习(三)(IO流)
作者:一衡
一、IO流的概述和分类
1、IO流的作用,可以吧数据存储到文本文件上,也可以从文本文件中读取数据。其中 的输入和输出是相对于Java程序。有力于数据的持久化存储。
常见应用为:文件复制、上传文件、下载文件。
2、由API可以查出,IO属于java.IO包,所以在使用时需要导包。
3、IO分类有:输出流与输入流;(FileWriter/FileReader)。
4、构造方法:
1)输出流:FileWriter(String fileName) 根据给定的文件名构造一个 FileWriter 对象。
FileWriter(String fileName, boolean append) 根据给定的文件名以及指示是否附加写入数据的 boolean 值来构造 FileWriter 对象。
例如:public class FileWriterDemo {
public static void main(String[] args) throws IOException {
//创建输出流对象
FileWriter fw = new FileWriter("d:\\a.txt");
注:如果没有路径直接跟文本文档时,会自动生成到项目文件内。如果后面不加true是,在调用FileWriter方法时,系统先找目标路径或者相对路径中如果找不到时,会新建,如果路径中有,将会清空文本中的信息。
2)、输入流:FileReader(String fileName) :在给定从中读取数据的文件名的情况下创建一个新的文件,其中读取文件必须是有效的。
例如:public class FileReaderDemo {
public static void main(String[] args) throws IOException {
//创建输入流对象
FileReader fr = new FileReader("fr.txt");
5、文本的写入。
例如:
public class FileWriterDemo3 {
public static void main(String[] args) throws IOException {
//创建输出流对象
FileWriter fw = new FileWriter("b.txt");
//void write(String str):写一个字符串数据
//fw.write("abcde");
//void write(String str,int index,int len):写一个字符串中的一部分数据
//fw.write("abcde",0,5);
//fw.write("abcde",1,3);
fw.close();释放资源
//void write(int ch):写一个字符数据,这里写int类型的好处是既可以写char类型的数据,也可以写char对应的int类型的值。'a',97,其中数字97只会输出‘a’。
6、文本的读取。
例如:
public class FileReaderDemo {
public static void main(String[] args) throws IOException {
//创建输入流对象
FileReader fr = new FileReader("fr.txt");
//一次读取一个数组
char[] chs = new char[1024];
int len;//实际读取长度
while((len=fr.read(chs))!= -1){
System.out.print(new String(chs,0,len))
}
fr.close();
7、文本的copy:
例如:public class CopyFileDemo2 {
public static void main(String[] args) throws IOException {
//创建输入流对象
FileReader fr = new FileReader("FileWriterDemo.java");
//创建输出流对象
FileWriter fw = new FileWriter("Copy.java");
//读写数据
char[] chs = new char[1024];
int len;
while((len=fr.read(chs))!=-1) {
fw.write(chs, 0, len);
}
//释放资源
fw.close();
fr.close();
}
}
二、缓冲流使用;
1、读写
例如:
BufferedWriter bw = new BufferedWriter(new FileWriter("bw2.txt"));
for(int x=0; x<10; x++) {
bw.write("hello"+x);
bw.newLine();
bw.flush();
}
bw.close();
*/
BufferedReader br = new BufferedReader(new FileReader("br.txt"));
String line;
//1:br.readLine()
//2:line=br.readLine()
//3:line != null
while((line=br.readLine())!=null) {
System.out.println(line);
}
br.close();
}
}
2、缓冲流特殊使用
* 缓冲流的特殊功能:
* BufferedWriter
* void newLine():写一个换行符,这个换行符由系统决定
* BufferedReader
* String readLine():一次读取一行数据,但是不读取换行符
*/
public class BufferedStreamDemo {
public static void main(String[] args) throws IOException {
/*
BufferedWriter bw = new BufferedWriter(new FileWriter("bw2.txt"));
for(int x=0; x<10; x++) {
bw.write("hello"+x);
//bw.write("\r\n");
bw.newLine();
bw.flush();
}
bw.close();
*/
BufferedReader br = new BufferedReader(new FileReader("br.txt"));
String line;
//1:br.readLine()
//2:line=br.readLine()
//3:line != null
while((line=br.readLine())!=null) {
System.out.println(line);
}
br.close();
}
}
缓冲流的复制
public class CopyFileDemo {
public static void main(String[] args) throws IOException {
//创建输入缓冲流对象
BufferedReader br = new BufferedReader(new FileReader("FileWriterDemo.java"));
//创建输出缓冲流对象
BufferedWriter bw = new BufferedWriter(new FileWriter("Copy.java"));
//读写数据
String line;
while((line=br.readLine())!=null) {
bw.write(line);
bw.newLine();
bw.flush();
}
//释放资源
bw.close();
br.close();
}
作者: 陈文老师 时间: 2017-11-27 13:40
好好复习,迎接考试
作者: 渝小妹 时间: 2017-11-27 16:12
好好复习 迎接考试 下一个挑战即将开始
作者: 1414225997 时间: 2017-11-28 16:04
超赞,虽然我看不懂
作者: orson... 时间: 2017-11-30 11:00
这几天你空闲时间充分利用起来,好好复习
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |