package com.itheima.d4_byte_stream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.OutputStream;
public class FileInputStreamDemo04 {
public static void main(String[] args) throws Exception {
//1.创建一个文件字节输出流管道与目标文件接通
// OutputStream os = new FileOutputStream("D:\\code\\javasepromax\\file-io-app/src/out04.txt"); //先清空之前的数据,写新数据进入
OutputStream os = new FileOutputStream("D:\\code\\javasepromax\\file-io-app/src/out04.txt",true); //追加数据管道
//2.写数据出去
//a.public void write (int a):写一个字节出去
os.write('a');
os.write(98);
os.write("\r\n".getBytes());//换行
// os.write('徐');
//b.public void write(byte [] buffer): 写一个字节数组出去
byte [] buffer = {'a',97 , 98 ,99};
os.write(buffer);
os.write("\r\n".getBytes());//换行
byte[] buffer2 = "我是中国人".getBytes();
os.write(buffer2);
os.write("\r\n".getBytes());//换行
// c.public void wirte(byte [] buffer , int pos , int len): 写一个字节数组的一部分出去。
byte [] buffer3 = {'a',97 , 98 ,99};
os.write(buffer3,0,3);
os.write("\r\n".getBytes());//换行
// os.flush();//写数据必须,刷新数据 可以继续使用流
os.close(); //释放资源:包含了刷新的!!关闭后不可以继续使用了
}
}
package com.itheima.d4_byte_stream;
import java.io.*;
/**
* 目标:学会使用字节流完成文件的复制(支持一切文件类型的复制)
*/
public class OutputStreamDemo04 {
public static void main(String[] args) {
try {
//1.创建一个字节输入流管道与原视频接通
InputStream is = new FileInputStream("D:\\WpSystem\\S-1-5-21-3257775804-2951877094-422413062-1001\\AppData\\Local\\Packages\\TencentWeChatLimited.forWindows10_sdtnhv12zgd7a\\LocalCache\\Roaming\\Tencent\\WeChatAppStore\\WeChatAppStore Files\\LQM15118239251\\Video\\0d952a0dd44a7dd37fdc85bcebf5cc4f.mp4");
//2.创建一个字节输出流管道与目标文件接通
OutputStream os = new FileOutputStream("D:\\黑马JAVA资料\\new.avi");
//3.定义一个字节数组转移数据
byte[] buffer = new byte[1024];
int len; //记录每次读取的字节数
while ((len = is.read(buffer))!=-1 ){
os.write(buffer,0, len);
}
System.out.println("复制完成了!!");
//4.关闭流
os.close();
is.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.itheima.d5_resource;
import java.io.*;
/**
* 目标:学会使用finally释放
*/
public class TryCatchFinallyDemo1 {
public static void main(String[] args) {
InputStream is = null;
OutputStream os = null;
try {
//1.创建一个字节输入流管道与原视频接通
is = new FileInputStream("D:\\WpSystem\\S-1-5-21-3257775804-2951877094-422413062-1001\\AppData\\Local\\Packages\\TencentWeChatLimited.forWindows10_sdtnhv12zgd7a\\LocalCache\\Roaming\\Tencent\\WeChatAppStore\\WeChatAppStore Files\\LQM15118239251\\Video\\0d952a0dd44a7dd37fdc85bcebf5cc4f.mp4");
//2.创建一个字节输出流管道与目标文件接通
os = new FileOutputStream("D:\\黑马JAVA资料\\new.avi");
//3.定义一个字节数组转移数据
byte[] buffer = new byte[1024];
int len; //记录每次读取的字节数
while ((len = is.read(buffer))!=-1 ){
os.write(buffer,0, len);
}
System.out.println("复制完成了!!");
// System.out.println(10 / 0);
} catch (Exception e) {
e.printStackTrace();
}finally {
//无论代码是正常结束,还是出现异常都要最后执行这里
System.out.println("========finally==========");
try {
//4.关闭流
if(os != null)os.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
if(is != null)is.close();
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println(test(10,0));
}
public static int test(int a ,int b ){
try {
int c = a / b;
return c;
} catch (Exception e) {
e.printStackTrace();
return -11111; //计算出现bug
}finally {
//哪怕上面有return语句执行,也必须先执行完这里才可以!
//开发中不建议在这里加return,如果加了,返回的永远是这里的数据了,这样才会出现问题!
return 100;
}
}
}
package com.itheima.d5_resource;
import java.io.*;
/**
* 目标:学会使用finally释放
*/
public class TryCatchResourceDemo2 {
public static void main(String[] args) {
try (//
//这里面只能放置资源对象,用完会自动关闭:自动调用资源对象的close方法关闭资源(即使出现异常也会做关闭操作)
//1.创建一个字节输入流管道与原视频接通
InputStream is = new FileInputStream("D:\\WpSystem\\S-1-5-21-3257775804-2951877094-422413062-1001\\AppData\\Local\\Packages\\TencentWeChatLimited.forWindows10_sdtnhv12zgd7a\\LocalCache\\Roaming\\Tencent\\WeChatAppStore\\WeChatAppStore Files\\LQM15118239251\\Video\\0d952a0dd44a7dd37fdc85bcebf5cc4f.mp4");
//2.创建一个字节输出流管道与目标文件接通
OutputStream os = new FileOutputStream("D:\\黑马JAVA资料\\new.avi");
//int age = 23; //这里只能放资源
){
//3.定义一个字节数组转移数据
byte[] buffer = new byte[1024];
int len; //记录每次读取的字节数
while ((len = is.read(buffer))!=-1 ){
os.write(buffer,0, len);
}
System.out.println("复制完成了!!");
// System.out.println(10 / 0);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.itheima.d5_resource;
import java.io.*;
/**
* 目标:JDK 9 释放资源的方式:可以了解下
*/
public class TryCatchResourceDemo3 {
public static void main(String[] args) throws Exception {
//这里只能放置资源对象,用完会自动关闭:自动调用资源对象的close方法关闭资源(即使出现异常也会做关闭操作)
//1.创建一个字节输入流管道与原视频接通
InputStream is = new FileInputStream("D:\\WpSystem\\S-1-5-21-3257775804-2951877094-422413062-1001\\AppData\\Local\\Packages\\TencentWeChatLimited.forWindows10_sdtnhv12zgd7a\\LocalCache\\Roaming\\Tencent\\WeChatAppStore\\WeChatAppStore Files\\LQM15118239251\\Video\\0d952a0dd44a7dd37fdc85bcebf5cc4f.mp4");
//2.创建一个字节输出流管道与目标文件接通
OutputStream os = new FileOutputStream("D:\\黑马JAVA资料\\new.avi");
try (is ; os) {
//3.定义一个字节数组转移数据
byte[] buffer = new byte[1024];
int len; //记录每次读取的字节数
while ((len = is.read(buffer))!=-1 ){
os.write(buffer,0, len);
}
System.out.println("复制完成了!!");
// System.out.println(10 / 0);
} catch (Exception e) {
e.printStackTrace();
}
}
}