IO流体系
字节流
inputStream
outputStream
FileOutputStream
public class 换行和续写 {
public static void main(String[] args) throws IOException {
//1.创建对象
FileOutputStream ff = new FileOutputStream("C:\\Users\\小胡\\Desktop\\123213.txt");
//我们要加一长串的字符我们可以
//先创建一个字符串
//然后我们要加换行的文字的时候,
// 再写出一个换行符就可以了
// windows:\r\n
// Linux: \n
// mac: \r
//细节:
// 在windows操作系统当中,java对回车和换行进行了优化
// 虽然完整的是\r\n,但是我们写了其中之一之后,java也可以实现
// 换行,因为java在底层会自动补全
//建议:
// 不要省略,最好写全
//续写:如果想要续写,打开续写开关即可
//开关位置,创建对象的第二个参数
//默认false:表示关闭续写,此时创建对象会清空文件
//手动传递true:表示打开续写,此时创建文件不会清空文件
String s = "okokwodongle";
byte arr [] = s.getBytes();
ff.write(arr);
//
String warp = "\r\n";
byte[] bytes = warp.getBytes();
ff.write(bytes);
String aaa = "666";
byte[] bytes1 = aaa.getBytes();
ff.write(bytes1);
ff.close();
}
}
FileInputStream
import java.awt.*;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
public class 字节输入流 {
public static void main(String[] args) throws IOException {
//字节输入流的细节:
//1.创建字节输入流对象
// 细节1:如果文件不存在,就直接报错
// java为什么会这么设计呢?
// 输出流:不存在,创建
// 把数据写到文件当中
// 输入流:不存在,而是报错呢?
// 数据在哪里?,数据在文件当中
// 如果java创建输入流对象的时候,如果文件不存在,也创建。
//程序中最重要的是:数据
//写数据:
// 1.一次读一个字节,读出来的数据在ASCII上对应的数字
// 2.读到文件末尾了,read发明回复返回-1.
FileInputStream aa = new FileInputStream("C:\Users\小胡\Desktop\123213.txt");
int read = aa.read();
System.out.println(read);
aa.close();
//循环读取
//1.创建对象
FileInputStream aaa = new FileInputStream("C:\Users\小胡\Desktop\123213.txt");
int a ;
//为什么这边要搞一个a
//因为直接调用read的话,就调用两次了,每次都是从第二个开始
//read:表示读取数据,而且是读取一个数据就移动一次指针
while((a = aaa.read()) != -1){
System.out.print((char)a);
}
aaa.close();
//文件拷贝
FileInputStream ab = new FileInputStream("C:\Users\小胡\Desktop\123213.txt");
FileOutputStream abc = new FileOutputStream("C:\Users\小胡\Desktop\111111.txt");
int b ;
while((b = ab.read()) != -1){
abc.write(b);
}
//这边的释放,有规则:先开的最后关闭
abc.close();
ab.close();
}
}