java学习之字节流--InputStream和OutputStream
来源:互联网 发布:高中生语数外软件 编辑:程序博客网 时间:2024/05/16 18:24
字节流:可以处理一切文件,包括二进制 音频,视频, doc等
节点流: InputStream FIleInputStream
OutputStream FileOutputStream
一、文件的读取
* 1、建立联系 File对象 源头2、选择流 文件输入流 InputStream FileInputStream
3、操作 : byte[] car =new byte[1024]; +read+读取大小
输出
4、释放资源 :关闭
public class Demo01 {public static void main(String[] args) {//1、建立联系 File对象File src =new File("e:/xp/test/a.txt");//2、选择流InputStream is =null; //提升作用域try {is =new FileInputStream(src);//3、操作 不断读取 缓冲数组byte[] car =new byte[1024];int len =0; //接收 实际读取大小//循环读取StringBuilder sb =new StringBuilder();while(-1!=(len=is.read(car))){//输出 字节数组转成字符串String info =new String(car,0,len);sb.append(info);}System.out.println(sb.toString());} catch (FileNotFoundException e) {e.printStackTrace();System.out.println("文件不存在");} catch (IOException e) {e.printStackTrace();System.out.println("读取文件失败");}finally{try {//4、释放资源if (null != is) {is.close();}} catch (Exception e2) {System.out.println("关闭文件输入流失败");}}}}二、写出文件
1、建立联系 File对象 目的地
2、选择流 文件输出流 OutputStream FileOutputStream
3、操作 : write() +flush
4、释放资源 :关闭
public class Demo02 {public static void main(String[] args) {//1、建立联系 File对象 目的地File dest =new File("e:/xp/test/test.txt");//2、选择流 文件输出流 OutputStream FileOutputStreamOutputStream os =null;//以追加形式 写出文件 必须为true 否则为覆盖try {os =new FileOutputStream(dest,true);//3、操作String str="bjsxt is very good \r\n";//字符串转字节数组byte[] data =str.getBytes();os.write(data,0,data.length);os.flush(); //强制刷新出去} catch (FileNotFoundException e) {e.printStackTrace();System.out.println("文件未找到");} catch (IOException e) {e.printStackTrace();System.out.println("文件写出失败");}finally{//4、释放资源 :关闭try {if (null != os) {os.close();}} catch (Exception e2) {System.out.println("关闭输出流失败");}}}}三、文件拷贝 程序为桥梁
1、建立联系 源(存在且为文件) + 目的地(文件可以不存在)
2、选择流
3. 文件拷贝, 操作:循环+读取+写出
4. 释放资源
public class CopyFileDemo {public static void main(String[] args) {String src ="E:/xp/test";String dest="e:/xp/test/4.jpg";try {copyFile(src,dest);} catch (FileNotFoundException e) {e.printStackTrace();System.out.println("文件不存在");} catch (IOException e) {e.printStackTrace();System.out.println("拷贝文件失败|关闭流失败");}}/** * 文件的拷贝 * @param 源文件路径 * @param 目录文件路径 * @throws FileNotFoundException,IOException * @return */public static void copyFile(String srcPath,String destPath) throws FileNotFoundException,IOException {//1、建立联系 源(存在且为文件) +目的地(文件可以不存在) File src =new File(srcPath);File dest =new File(destPath);if(! src.isFile()){ //不是文件或者为nullSystem.out.println("只能拷贝文件");throw new IOException("只能拷贝文件");}//2、选择流InputStream is =new FileInputStream(src);OutputStream os =new FileOutputStream(dest);//3、文件拷贝 循环+读取+写出byte[] flush =new byte[1024];int len =0;//读取while(-1!=(len=is.read(flush))){//写出os.write(flush, 0, len);}os.flush(); //强制刷出//关闭流os.close();is.close();}}
四、目录文件的拷贝
1、文件 赋值 copyFile
2、文件 创建 mkdirs()
3、递归查找子孙级
public class CopyDir {public static void main(String[] args) {//源目录String srcPath="E:/xp/test/a"; //目标目录String destPath="E:/xp/test/a/b";copyDir(srcPath,destPath);}/** * 拷贝文件夹 * @param src 源路径 * @param dest 目标路径 */public static void copyDir(String srcPath,String destPath){File src=new File(srcPath);File dest =new File(destPath);copyDir(src,dest);}/** * 拷贝文件夹 * @param src 源File对象 * @param dest 目标File对象 */public static void copyDir(File src,File dest){if(src.isDirectory()){ //文件夹dest =new File(dest,src.getName());}copyDirDetail(src,dest);}/** * 拷贝文件夹细节 * @param src * @param dest */public static void copyDirDetail(File src,File dest){if(src.isFile()){ //文件try {//拷贝文件操作,省略} catch (FileNotFoundException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}}else if(src.isDirectory()){ //文件夹//确保目标文件夹存在dest.mkdirs();//获取下一级目录|文件for(File sub:src.listFiles()){copyDirDetail(sub,new File(dest,sub.getName()));}}}}
0 0
- java学习之字节流--InputStream和OutputStream
- Java--IO流之字节流介绍--InputStream和OutputStream
- Java IO 字节流 InputStream和OutputStream
- 学习笔记之java.io包中的字节流(上)—— 基本的InputStream和OutputStream
- JAVA学习笔记(二十八) - 字节流 InputStream & OutputStream
- IO流之----字节流(InputStream和OutputStream)
- Java 字节流InputStream、OutputStream、FileInputStream、FileOutputStream
- JAVA——字节流: InputStream /OutputStream
- Java 字节流InputStream、OutputStream、FileInputStream、FileOutputStream
- Java 字节流InputStream、OutputStream、FileInputStream、FileOutputStream
- 字节流InputStream和OutputStream简单使用
- IO字节流,OutputStream和InputStream
- JDK 1.7 java.io 源码学习之InputStream和OutputStream
- I学霸官方免费教程四十二 :Java流之字节流 输入流和输出流 InputStream和OutputStream
- java IO之OutputStream和InputStream
- java InputStream 和 OutputStream
- Java InputStream 和OutputStream
- JAVA 的IO操作(二) 字节输出流和输入流:OutputStream和InputStream
- Android 双卡双待识别
- java学习之IO原理与概念-2015-2-27
- 设计模式之观察者模式
- Centos 下Hbase0.98.10-hadoop2 集群的配置
- poj 3687 Labeling Balls
- java学习之字节流--InputStream和OutputStream
- boost bind初步探究
- 的烦不烦的舍不得放
- 《Master Opencv...读书笔记》非刚性人脸跟踪 III
- ubuntu安装Chromium并添加Pepper Flash Player
- C++ 11 Lambda表达式、auto、function、bind、final、override
- 如何让NAT支持PPTP协议
- 安卓之SwipeRefreshLayout
- 64位win8安装pip,numpy,scipy遇到的问题和解决方案