javaIo流实际应用
/*查看目录下所有的文件*/
package cn.file; import java.io.File; public class Text2 {
public static void main(String[] args) {
File a=new File("F:\\图片");
File a1=new File("F:\\你的");
chek(a1);
}
public static void chek(File f3) {//查看目录下的所有文件
if(f3.exists()){
if(f3.isDirectory()){
File [] f=f3.listFiles();//查看目录的文件
for(int i=0;i<f.length;i++){
chek(f[i]);
}
}
else {System.out.println(f3);};
}
}复制子目录
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Reader;
import java.io.Writer; //练习:关于目录的拷贝?
public class Text6 {
// 缓冲区大小
private static final int buffer_size = 1024*2;
// 源和目标检测
private static void doCopy(File src, File dst)throws IOException {
if (src.isFile()) {
copyFile(src, dst);
} else {
File dir = copyDirectory(src, dst);
File[] files = src.listFiles();
if (files.length == 0) { } else {
for (File file : files) {
doCopy(file, dir);
}
}
}
}
// 拷贝实现
public static void copy(File src, File dst) throws IOException { doCopy(src, dst); }
// 文件拷贝
private static void copyFile(File src, File dst) throws IOException {
File file = new File(dst, src.getName());
copy(new BufferedInputStream(new FileInputStream(src)), new BufferedOutputStream(new FileOutputStream(file)));
}
// 目录拷贝 要在目标设备中创建目录
private static File copyDirectory(File src, File dst) {
File file = new File(dst, src.getName());
file.mkdir();
return file;
}
// 拷贝
private static int copy(BufferedInputStream in, BufferedOutputStream out) throws IOException {
int byteCount = 0; // 问号 byteCount
try {
int bytesReader = 0;
byte [] buffer = new byte[buffer_size]; while ((bytesReader = in.read(buffer)) != -1) {
out.write(buffer, 0, bytesReader);
byteCount += bytesReader;
}
out.flush();
} finally {
in.close();
out.close();
}
return byteCount;
} public static void main(String[] args)throws IOException
{
File a=new File("F:\\测试的文件");
File b=new File("F:\\我的");
copy(a,b);
System.out.println("finish.................");
} }给文件改名
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; public class Text1{
public static void main(String[] args)throws IOException {
File a=new File("F:\\测试的文件\\我的");
File b=new File("F:\\测试的文件\\我的");
copyList(a,b); }
public static void copyList(File a,File b )throws IOException{//第一步
File c=a;
BufferedInputStream bis=null;
BufferedOutputStream bos=null;
byte bs []=new byte [1024];
if (!b.exists()){ //判断b的文件夹是否存在
b.mkdir();
}
if(c.isDirectory()){
File d [] =c.listFiles();//得到目录文件的数组
if(d!=null){//判断文件目录是否为空
for (int i=0;i<d.length;i++){
copyList(d[i],b);//递归查询
//System.out.println(d[i]);//查看目录里的文件
if(d[i].isFile()){
if(d[i].getName().endsWith(".jpg")){//根据条件判断的复制
int rel=0;
bis=new BufferedInputStream(new FileInputStream(d[i]));
bos=new BufferedOutputStream(new FileOutputStream(new File(b,i+".jpg")));
while((rel=bis.read(bs))!=-1){
bos.write(bs, 0, rel);
bos.flush();
}
bos.close();
bis.close();
d[i].delete();//复制后删去复制的文件 这样看起来像是剪切
}
}
}
}
}else{System.out.println(c);}
}
}/**过滤后复制文件夹*/
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException; //经典过滤方案 用到 iO流 递归
public class Text4 {
public static void print(File dir,File f2 )throws IOException{
//判断鱼塘是否存在
if (dir!=null){
//判断鱼塘是否有鱼
if (dir.isDirectory()){
//把鱼塘里面所有东西装箱
File f []=dir.listFiles();
//判断箱子是否为空
if (f!=null){
//遍历箱子里面的东西
for (int i=0;i<f.length;i++){
//假如箱子里还有箱子就继续打开
print(f[i],f2);
if (f[i].isFile()){
String name =f[i].getName();
if(name.endsWith(".jpg")){
BufferedInputStream bi=new BufferedInputStream(new FileInputStream(f[i]));
BufferedOutputStream bo=new BufferedOutputStream(new FileOutputStream(new File(f2,f[i].getName())));
int rel=0;
byte [] bs=new byte [1024];
while((rel=bi.read(bs))!=-1){
bo.write(bs,0,rel);
bo.flush();
//f[i].delete();//复制后删去复制的文件 这样看起来像是剪切
} } }
}
}else{//System.out.println(dir);
};
} }
} public static void main(String[] args) throws IOException { File f1=new File("F:\\音乐");
File f2=new File("D:\\速度1");
print(f1,f2);
System.out.println("复制成功");
//print(new File("F:"+File.separator+"音乐")); //System.out.println("遍历文件夹");
}
}/*删除文件与文件夹*/
import java.io.File;
import java.io.IOException; public class Text3 {
public static void main(String[] args) throws IOException {
File f=new File("F:\\我的");
delect(f);
}
public static void delect(File s){
File b []=null;
if(s.exists()){//判读是否存在
if(s.isDirectory()){//判断是不是目录
b=s.listFiles();
if(b!=null){
for(int i=0;i<b.length;i++){
if(b[i].isFile()){ //判断是不是目录
b[i].delete();//删除子文件
}else{
delect(b[i]);//递归
b[i].delete();}//删除子目录
}
}
}else{s.delete();};
s.delete();
}
}
}
javaIo流实际应用的更多相关文章
- Java学习日记之 Java-IO流
Java中的IO流在处理上分为字节流和字符流.字节流和字符流的区别 : 1.字节流读取的时候,读到一个字节就返回一个字节: 字符流使用了字节流读到一个或多个字节(中文对应的字节数是两个,在UTF-8 ...
- javaIO流实现读写txt文件
javaIO流实现文件读写 文件写入: InputStreamReader BufferedReader 文件读取: FileOutputStream package javatest.basic22 ...
- JavaIO流中的拷贝
JavaIO流中对数据的操作尤为重要,掌握了基本的拷贝操作,才能将各种数据源的操作联系起来. 先来看看对文件夹的拷贝吧: /** * 利用递归实现文件夹的拷贝操作 * 分析:判断 * 是文件:调用拷贝 ...
- JavaIO 流(1)IO流介绍
IO流定义: 流的本质是一组单向有序,分起始和终止的数据传输过程.需要导入import java.io.* IO流分类: 按数据类型分为:字节流和字符流 字节流: 按字节进行读取(可以处理任意类型数据 ...
- Java基础 Java-IO流 深入浅出
建议阅读 重要性由高到低 Java基础-3 吃透Java IO:字节流.字符流.缓冲流 廖雪峰Java IO Java-IO流 JAVA设计模式初探之装饰者模式 为什么我觉得 Java 的 IO 很复 ...
- 完美解决JavaIO流报错 java.io.FileNotFoundException: F:\ (系统找不到指定的路径。)
完美解决JavaIO流报错 java.io.FileNotFoundException: F:\ (系统找不到指定的路径.) 错误原因 读出文件的路径需要有被拷贝的文件名,否则无法解析地址 源代码(用 ...
- JavaIO流(输入输出操作)
Java中执行输出和输入操作,需要通过IO流.例如最常见的System.out.println()就是一个输出流.IO流的类比较多,但核心体系就是由File. InputStream .OutputS ...
- javaIO -- 流的体系设计思路、基础分类
一.流 1. 流的含义 在程序设计中,流是对于数据流动传输的一种抽象描述任何有能力产出数据的数据源,或者有能力接受数据的接收端对象都是一个流. 2. 流的源和目的 数据可能从本地文件读取,或者写入, ...
- JavaIO流文件的操作总结
IO流的分类 1.根据数据的流向: 输入流:用来读数据,如从外界设备读数据到内存中: 输出流:用来写数据,如从内存输出数据到外界存储设备: 2.根据数据流的格式: 字节流:一般用于声音或者秃瓢等二进制 ...
随机推荐
- linux设备驱动----利用mdev(udev)自动创建设备文件节点
1.mdev的使用方法和原理: mdev是busybox 自带的一个简化版的udev,适合于嵌入式的应用埸合.其具有使用简单的特点.它的作用,就是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程 ...
- 坑爹的IE quirk模式【转】
调试一个页面,ie下面页面css样式很是奇怪,各种失效.找了半天原因不知道怎么回事.最后在调试工具中发现,文档模式为quirk,改成别的(IE 7|8|9)正常. 为什么会自动选择此文档模式呢? 先看 ...
- Python学习(2)
python基础学习(二)2.1 python定义函数用def,没有返回类型?def myabs(x) if x>0: return x python定义的函数可以多个直接一起返回,这一点和ja ...
- 用sharding技术来扩展你的数据库(一)sharding 介绍
数据库的sharding技术作为一个“新瓶装旧酒”的概念,在新的应用环境中被赋予了新的意义.随着云计算的发展,sharding在最近几年是越来越火热,越来越多的产品开始声称自己支持sharding功能 ...
- AMQP与QPID简介
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- wireshark抓包图解 TCP三次握手/四次挥手详解
http://www.seanyxie.com/wireshark%E6%8A%93%E5%8C%85%E5%9B%BE%E8%A7%A3-tcp%E4%B8%89%E6%AC%A1%E6%8F%A1 ...
- 嵌入式Linux-GNU Make 使用手册(中译版)
GNU Make 使用手册(中译版) 翻译:于凤昌 译者注:本人在阅读Linux源代码过程中发现如果要全面了解Linux的结构.理解Linux的编程总体设计及思想必须首先全部读通Linux源代码中各级 ...
- Deep Learning for NLP 文章列举
Deep Learning for NLP 文章列举 原文链接:http://www.xperseverance.net/blogs/2013/07/2124/ 大部分文章来自: http://w ...
- Java基础知识强化之IO流笔记39:字符流缓冲流之复制文本文件案例01
1. 字符流缓冲流之复制文本文件案例 需求:把当前项目目录下的a.txt内容复制到当前项目目录下的b.txt中 数据源: a.txt -- 读取数据 -- 字符转换流 -- InputStreamRe ...
- (转)十分钟搞定CSS选择器
原文地址:http://www.cnblogs.com/dolphinX/p/3347713.html 在最近的web开发中是不是就会用到一些选择器,发现很多尤其是CSS3新增的不太熟悉,在此总结一下 ...