io流的定义
i:input 输入,从硬盘到内存
o:output 从内存到硬盘
1.在文件里面添加字符串
FileWriter(String fileName, boolean append)
构造FileWriter对象给出一个文件名与一个布尔值,指示是否附加写入的数据。
如果Boolean值是true,那么可以在后面继续添加
如果Boolean的值是false,那么就不能再后面继续添加
public static void main(String[] args) throws IOException {
FileWriter fileWriter = new FileWriter("C:\\Users\\injuryzy\\Desktop\\发姐.txt",true);
fileWriter.write("\n快来快来我这里我在这里等着你");
fileWriter.close();
}
2.读取文件中的数据
a.首先创建个读取文件的(public FileReader(File file) throws FileNotFoundException创建一个新的 FileReader,给予 File读。 )
public static void main(String[] args) throws IOException {
FileReader fileReader = new FileReader("C:\\Users\\injuryzy\\Desktop\\发姐.txt");
//一个字符=2个字节
char[] a = new char[2];
//创建stringbuffer进行拼借字符串
StringBuffer buffer = new StringBuffer();
// 当内容为空时就返回-1
while (fileReader.read(a)!=-1){
buffer.append(a);
}
System.out.println(buffer);
}
3.输出流
public void filetest() throws IOException {
FileOutputStream outputStream = new FileOutputStream("C:\\Users\\injuryzy\\Desktop\\发姐.txt");
//outputstream是输出字节级流,所以后面加上。
// getbytes将其转换为字节流(getbytes:String编码成一个序列使用平台的默认字符集字节,结果存放到一个新的字节数组。)
outputStream.write("小妹妹你在哪里啊".getBytes());
outputStream.close();
}
4.输入流
@Test
public void filetest1() throws IOException {
FileInputStream fileInputStream = new FileInputStream("C:\\Users\\injuryzy\\Desktop\\发姐.txt");
//这里的byte=1024或者是1024的倍数,不然可能会出现中文乱码问题
byte[]b=new byte [1024] ;
while ( fileInputStream.read(b)!=-1){
System.out.print(new String(b,0,b.length));
}
}
}
5.流cp
@Test
public void filetest2() throws IOException {
File file = new File("C:\\Users\\injuryzy\\Desktop\\发姐.txt");
File file1 = new File("C:\\Users\\injuryzy\\Desktop\\新建文本.txt");
//创建文件
System.out.println(file1.createNewFile());
FileInputStream inputStream = new FileInputStream(file);
FileOutputStream outputStream = new FileOutputStream(file1);
byte[] bytes = new byte[1024];
while (inputStream.read(bytes)!=-1){
outputStream.write(bytes);
}
inputStream.close();
outputStream.close();
}
读取文件—>写到输出文件里面