1.Input 输入--计算机的阅读 Output输出--电脑程序向外写出 将IO比喻为流Stream
2.java.io.InputStream与java.io.OutputStream为输入与输出流的超类 本身抽象不可实例化 文件流:java.io.FileInputStream与FileOutputStream定义了InputStream与OutputStream的中读取与写出的相关方法
3.文件的copy 单字节的读取
FileInputStream fis = new FileInputStream("image.jpg");//新建一个给电脑输入字节码文件
FileOutputStream fos = new FileOutputStream("image_cp.jpg" );//让电脑输出字节码文件
int d ;//定义初值
long start =System.currentTimeMillis();//获取系统当前时间的毫秒
while((d = fis.read())!=-1){//循环读取最后八位 步步读取 一直有值 当读取结束 无字节码为-1停止
fos.write(d);//写出
}
long end = System.currentTimeMillis();//获取当前系统时间的毫秒值
System.out.println("复制完毕"+"耗费了"+(end-start)+"ms");
fis.close();
fos.close();//关闭
4.文件的copy 多字节byte读取
byte[] data = new byte[1024*10];//10kb 一次性读取10kb
int len = 0;
while ((len = fis.read(data))!=-1){
fos.write(data,0,len);//从下标0开始 即为从第一个开始 长度为len结束
}
5.将字符串按照指定的字符集转换成一组字节,再以文本形式输出
FileOutputStream fos = new FileOutputStream("fos.txt");
String line ="爱你不跪的模样";
byte[] data = line.getBytes(StandardCharsets.UTF_8);//字符串提供的方法
fos.write(data);
System.out.println(data);
fos.close();
6.向文件中写入文本并输出
//文件fos.txt中写入字符串 在文件后输入true为追加模式 false为覆盖模式
追加模式true 可以修改语句 并在后写上 覆盖模式false为覆盖当前语句
FileOutputStream fos = new FileOutputStream("fos.txt",false);
String line ="如果你打了一个喷嚏,";
byte[] data = line.getBytes(StandardCharsets.UTF_8);//字符串提供的方法
fos.write(data);
line = "那一定是我在想你";//继续在后面写文本、不能加String
data = line.getBytes(StandardCharsets.UTF_8);//字符串提供的方法
fos.write(data);
System.out.println("写出完毕");
fos.close();
7.把文本的内容重新输出
File file =new File("fos.txt");
FileInputStream fis = new FileInputStream(file);
byte[] data = new byte[(int)(file.length())];
//file.length为long数值,byte中为int 所以对他进行强转
fis.read(data);//此时还是字节
String line = new String(data, StandardCharsets.UTF_8);
//建立一个字符串,把字节转变成为字符串
System.out.println(line);



