package io;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
/**
* I(input输入)/O(output输出)流:
*
* 流(Stream)的概念代表的是程序中数据的流通
* 数据流是一串连续不断的数据的集合
* 在Java程序中,对于数据的输入/输出操作是以流(Stream)的方式进行的
* 输入流(流入程序的数据) ---- 读取数据到内存中
* 输出流(流出程序的数据) ---- 从内存存储到文件或显示到屏幕上
* 流的分类:
* 1.按流的方向: 输入流、输出流
* 2.按处理数据的单位: 字节流、字符流 InputStream/OutputStream、Read/Writer(根父类)
* 3.按功能: 节点流、处理流 节点流构造器直接关联到一个数据源、处理流就是对节点流功能的增强
*
*
*/
public class Test {
public static void main(String[] args) {
FileReader fileReader;
try {
fileReader = new FileReader("file");
BufferedReader bufferedReader = new BufferedReader(fileReader);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
package io;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyDemp {
public static void main(String[] args) {
FileInputStream fileInputStream=null;
FileOutputStream fileOutputStream=null;
try {
// FileInputStream对源文件进行读操作
fileInputStream = new FileInputStream("library.jpg");
// FileouptStream写(目标文件)操作
fileOutputStream = new FileOutputStream("library_text.jpg");
// 对源文件读取一个字节
int read = fileInputStream.read();
// 循环读取源文件直到读完(-1),循环就结束了
while (read != -1) {
// 将读取到的read写入到目标文件中
fileOutputStream.write(read);
//读取下一个字节
read = fileInputStream.read();
}
//释放资源
fileInputStream.close();
fileOutputStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package io;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/**
* 复制一个图片:字节流
* 复制一个文件:字符流
*
* 绝对路径:具体的地址 D:/xxx/xxx/abc.java
* 相对路径:相对于当前的工程(项目)
*
*/
public class TextCopy {
public static void main(String[] args) {
FileReader fileReader = null;
FileWriter fileWriter = null;
try {
fileReader = new FileReader("CopyDemp.java");
fileWriter = new FileWriter("CopyDemp_text.java");
int read = fileReader.read();
while (read != -1) {
fileWriter.write(read);
read = fileReader.read();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package io;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class BufferedDemo {
public static void main(String[] args) {
FileReader fileReader = null;
FileWriter fileWriter = null;
BufferedReader bufferedReader = null;
BufferedWriter bufferedWriter = null;
try {
//源文件
fileReader = new FileReader("CopyDemo.java");//节点流
bufferedReader = new BufferedReader(fileReader);//处理流
//目标
fileWriter = new FileWriter("CopyDemo_test1.java");
bufferedWriter = new BufferedWriter(fileWriter);
String read = bufferedReader.readLine();
while (read != null) {
bufferedWriter.write(read);
bufferedWriter.newLine();//换行
read = bufferedReader.readLine();
}
bufferedReader.close();
bufferedWriter.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}