Java IO
示例:字符流-将用户在控制台中输入的内容保存到文件中
public static void main(String[] args) throws IOException {//psvm
Scanner scanner = new Scanner(System.in);
String data = scanner.next();
FileWriter writer = new FileWriter("f.txt");//ctrl+alt+v
writer.write(data);
writer.flush();
writer.close();
}
示例:将随机生成的字符串保存到文件中
public static void main(String[] args) throws IOException {//psvm
File file = new File("F:\\f.txt");
FileWriter writer = new FileWriter(file);//ctrl+alt+v
BufferedWriter bw = new BufferedWriter(writer);
for(int i =0;i<1000000000;i++) {
String s = UUID.randomUUID().toString();
// System.out.println(s);
bw.write(s);
}
bw.flush();
bw.close();
}
示例:读取文件
- 实现一
public static void main(String[] args) throws IOException {//psvm
File file = new File("F:\\安装GCC.txt");
FileReader reader = new FileReader(file);
int read = reader.read(); //read() 一次读取一个字符
System.out.print((char)read);
while(read != -1){
read = reader.read();
System.out.print((char)read);
}
reader.close();
}
- 实现二
public static void main(String[] args) throws IOException {//psvm
File file = new File("F:\\安装GCC.txt");
FileReader reader = new FileReader(file);
char[] buf = new char[64];
int len = reader.read(buf); //将数据读取到buf中,返回读取到的字符的个数
while(len != -1){
System.out.println(new String(buf,0,len));
len = reader.read(buf);//
}
reader.close();
}
- 实现三(重点)
public static void main(String[] args) throws IOException {//psvm
File file = new File("F:\\安装GCC.txt");
FileReader reader = new FileReader(file);
char[] buf = new char[64];
int len = -1;
while((len = reader.read(buf)) != -1){
System.out.println(new String(buf,0,len));
}
reader.close();
}
- 实现四(重点掌握)
public static void main(String[] args) throws IOException {
File file = new File("F:\\安装GCC.txt");
FileReader reader = new FileReader(file);
BufferedReader br = new BufferedReader(reader);
String line = null;
while((line = br.readLine()) != null){
System.out.println(line);
}
br.close();
}
示例:文件复制
字符流-txt文件拷贝
实现一:
public static void main(String[] args) throws IOException {//psvm
File file1 = new File("F:\\sources.txt");
File file2 = new File("F:\\aim.txt");
FileReader reader = new FileReader(file1);
FileWriter writer = new FileWriter(file2);
int len =-1;
char[] buf = new char[128];
while ((len = reader.read(buf)) != -1){
writer.write(new String(buf,0,len));
}
writer.flush(); // 强制将缓存中的数据输出到目标文件中
writer.close();
reader.close();
}
实现二:
public static void main(String[] args) throws IOException {//psvm
File file1 = new File("F:\\sources.txt");
File file2 = new File("F:\\aim.txt");
FileReader reader = new FileReader(file1);
BufferedReader br = new BufferedReader(reader);
FileWriter writer = new FileWriter(file2);
BufferedWriter bw = new BufferedWriter(writer);
int len =-1;
char[] buf = new char[128];
while ((len = br.read(buf)) != -1){
bw.write(new String(buf,0,len));
}
bw.flush(); // 强制将缓存中的数据输出到目标文件中
bw.close(); // 会自动删除bw所装饰的writer对象
br.close(); // 会自动删除所装饰的reader对象
}
字符流-音频文件拷贝
实现一:复制音频文件
public static void main(String[] args) throws IOException {//psvm
File sources = new File("F:\\微购 实体类 数据库工具类 编写.wmv");
File aim = new File("F:\\微购 实体类 数据库工具类 编写2.wmv");
FileInputStream fis = new FileInputStream(sources);
FileOutputStream fos = new FileOutputStream(aim);
byte[] buf = new byte[256];
int len =-1;
while ((len = fis.read(buf)) != -1){
fos.write(buf,0,len);
}
fos.flush();
fos.close();
fis.close();
}
实现二:
public static void main(String[] args) throws IOException {//psvm
File sources = new File("F:\\微购 实体类 数据库工具类 编写.wmv");
File aim = new File("F:\\微购 实体类 数据库工具类 编写2.wmv");
FileInputStream fis = new FileInputStream(sources);
BufferedInputStream bis = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream(aim);
BufferedOutputStream bos = new BufferedOutputStream(fos);
byte[] buf = new byte[256];
int len =-1;
while ((len = bis.read(buf)) != -1){
bos.write(buf,0,len);
}
bos.flush();
bos.close();
bis.close();
}