package IO;
import java.io.FileWriter;
import java.io.IOException;
/*
* 对已有文件的数据进行续写
*
* \r\换行
*
* */
public class Demo1 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//传递一个true参数:代表不覆盖已有的文件,并在已有文件的末尾处进行数据的续写
FileWriter fileWriter=new FileWriter("D://demo.txt",true);
fileWriter.write("ffasfas\nhh");
fileWriter.close();
}
}
package IO;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Demo2 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//创建一个文件 读取流对象 和指定名称的文件 相关联 要保证该文件是已经存在的,如果不存在会异常
FileReader fileReader=new FileReader("D://demo.txt");
//调用读取流的read方法
// int ch=fileReader.read();
// System.out.println((char)ch);
// fileReader.close();
// while(true){
// int ch =fileReader.read();
// if (ch==-1) {
// break;
// }
// System.out.println((char)ch);
// }
// }
int ch=0;
while ((ch=fileReader.read())!=-1) {
System.out.println((char)ch);
}
}
}
package IO;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Demo3 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
FileReader fileReader=new FileReader("D://demo.txt");
//定义一个字符数组,用于储存读到的字符。
//该read(char【】)返回的是读到的字符个数
char[] buf=new char[1024];
// int num=fileReader.read(buf);
// System.out.println(num+new String(buf));
// fileReader.close();
int num=0;
while ((num=fileReader.read(buf))!=-1) {
System.out.println(new String(buf,0,num));
}
fileReader.close();
}
}
package IO;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Demo4 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
FileReader fileReader=new FileReader("D://demo.txt");
char[] buf=new char[1024];
int num=0;
while ((num=fileReader.read(buf))!=-1) {
System.out.print(new String(buf,0,num));
}
fileReader.close();
}
}
package IO;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*将c盘一个文件复制到d盘
* 原理:
* 将c盘文件数据存储到d的文件中
* 步骤:
* 1.在d盘中创建一个文件,用于存储c盘文件中的数据
* 2.定义读取流和c盘文件关联
* 3.通过不断地读写完成数据的储存
* 4.关闭资源
*
*
* */
public class Demo5 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//从c盘读一个字符,就往d盘写一个字符。
//Copy1();
Copy2();
}
public static void Copy1() throws IOException {
//创建目的地
FileWriter fileWriter =new FileWriter("D://demo1.txt");
//已有文件关联
FileReader fileReader= new FileReader("D://Noname2.java");
char[] buf=new char[1024];
int num=0;
while ((num=fileReader.read(buf))!=-1) {
System.out.print(new String(buf,0,num));
}
int ch=0;
while ((ch=fileReader.read())!=-1) {
fileWriter.write(ch);
}
fileReader.close();
fileWriter.close();
}
public static void Copy2() throws IOException {
FileWriter fileWriter=null;
FileReader fileReader=null;
fileWriter=new FileWriter("D://demo2.txt");
fileReader=new FileReader("D://demo.txt");
char[] buf=new char[1024];
int len=0;
while ((len=fileReader.read())!=-1) {
fileWriter.write(buf,0,len);
}
fileReader.close();
fileWriter.close();
}
}
package IO;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
/**
* 字符流缓冲区
* 缓冲区的出现提高了对数据的读写的效率
* 对应类:
* BufferedWriter
* BufferedReader
* 缓冲区要结合流才可以使用
* 在流的基础上对流的功能进行了增强操作
* 缓冲区的出现是为了提高操作效率而出现
* 所以再创建缓冲区之前,必须要有流的对象
* 该缓冲区当中,提供了一个跨平台的换行符.next line
* **/
public class Demo6 {
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
//创建一个字符写入流对象
FileWriter fileWriter=new FileWriter("D://demo.txt");
//为了提高字符写入流效率1,加入了缓冲技术
BufferedWriter bufferedWriter=new BufferedWriter(fileWriter);
//需要被提高效率的流对象,作为参数传入缓冲去的构造函数即可
// bufferedWriter.write("afdfdsf");
// bufferedWriter.newLine();
// bufferedWriter.write("yyyyy");
// bufferedWriter.flush();
for (int i = 0; i < 10; i++) {
bufferedWriter.write("sfsdfsdf"+i);
bufferedWriter.newLine();
bufferedWriter.flush();
}
//关闭缓冲区,就是在关闭缓冲区中的流对象
bufferedWriter.close();
//fileWriter.close();关闭缓冲区之后,就不用关这个
//只要用到缓冲区,就要记得刷新
}
}