第五篇 IO流技术(五)
文件字节输出流
package com.zzp.demo01; import java.io.File; import java.io.OutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStream; /** * * 四个步骤:分段读取(文件字节输出流) * 1、创建源 * 2、选择流 * 3、操作 * 4、释放资源 * @author java * */ public class IOTest04 { public static void main(String[] args) { //1、创建源 File dest = new File("dest.txt");//如果不存在,就创建 //2、选择流 OutputStream os = null; try { os = new FileOutputStream(dest,true);//加true表示后面进行拼接,如果为false,则替换之前的内容 //3、操作(写入操作) String msg = "我爱我的国家"; byte[] datas = msg.getBytes();//将字符串转化成字节数组 System.out.println(datas); os.write(datas, 0, datas.length); os.flush();//刷新 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(null != os){ try { os.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }
文件的拷贝
package com.zzp.demo01; import java.io.File; import java.io.FileInputStream; import java.io.OutputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.OutputStream; /** * * 四个步骤:文件拷贝(文件字节输入流和文件字节输出流) 1、创建源 2、选择流 3、操作 4、释放资源 * * @author java * */ public class Copy { public static void main(String[] args) { copy("src/com/zzp/demo01/Copy.java", "2.txt"); } public static void copy(String srcPath, String destPath) { // 1、创建源 File src = new File(srcPath);// 源 File dest = new File(destPath);// 目的地 // 2、选择流 InputStream is = null; OutputStream os = null; try { is = new FileInputStream(src); os = new FileOutputStream(dest, true);// 加true表示后面进行拼接,如果为false,则替换之前的内容 // 3、操作(写入操作) byte[] flush = new byte[1024]; // 1k一读取 int len = -1;// 设置默认长度为-1 while ((len = is.read(flush)) != -1) { os.write(flush, 0, len); } os.flush();// 刷新 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally {// 先打开的后关闭 try { if (null != os) { os.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { if (null != is) { is.close(); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
文件字符输入流
package com.zzp.demo01; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.io.Reader; /** * * 四个步骤:分段读取(文件字符输入流) * 1、创建源 * 2、选择流 * 3、操作 * 4、释放资源 * @author java * */ public class IOTest05 { public static void main(String[] args) { //1、创建源 File src = new File("1.txt");//相对路径 //2、选择流 Reader reader = null; try { reader = new FileReader(src); //3、操作 分段读取 char[] flush = new char[1024]; //1k一读取 int len = -1;//设置默认长度为-1 while((len = reader.read(flush))!= -1){ String str = new String(flush, 0, len);//将字节转化为字符串 System.out.println(str); } } catch (FileNotFoundException e) { e.printStackTrace(); }catch (IOException e) { e.printStackTrace(); }finally{ if(null != reader){ //4、释放资源 try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
文件字符输出流
package com.zzp.demo01; import java.io.File; import java.io.OutputStream; import java.io.Writer; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.OutputStream; import java.io.OutputStream; /** * * 四个步骤:(文件字符输出流) * 1、创建源 * 2、选择流 * 3、操作 * 4、释放资源 * @author java * */ public class IOTest06 { public static void main(String[] args) { //1、创建源 File dest = new File("dest.txt");//如果不存在,就创建 //2、选择流 Writer writer = null; try { writer = new FileWriter(dest);//加true表示后面进行拼接,如果为false,则替换之前的内容 //3、操作(写入操作) //写法一 String msg = "我爱我的国家,i like my country"; /*char[] datas = msg.toCharArray();//将字符串转化成字符数组 System.out.println(datas); writer.write(datas, 0, datas.length);*/ //写法二 /*writer.write(msg);*/ //写法三 writer.append("我爱我的家乡").append("我爱我的生活"); writer.flush();//刷新 } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ if(null != writer){ try { writer.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } } }