java基础IO流 复制键盘录入的目录,复制其中的.java文件到指定目录,指定目录中有重名,则改名 对加密文件计算字母个数
package com.swift.jinji; import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Scanner; /*从控制台获取输入的文件目录然后将该目录(包含子目录)下的.java文件复制到e:/java文件夹中,并统计java文件的个数.
提示:如果有相同的名称的文件,如果两个Test01.java,则拷贝到目标文件夹时只能有一个Test01.java,另一个Test01.java要修改为另一个名称:该名称可随机生成,只要不重复即可.*/ public class CopyJavaSameName { public static void main(String[] args) { File destDir=new File("e:/java");
if(!destDir.exists()) {
System.out.println("目标目录不存在,即将建立.");
destDir.mkdirs();
}
File srcDir=getDir();
copyDir(srcDir,destDir);
System.out.println("复制完成");
} private static void copyDir(File srcDir, File destDir) {
int i=0;
File[] files=srcDir.listFiles(new FileFilter() { @Override
public boolean accept(File pathname) {
if(pathname.getName().toLowerCase().endsWith(".java"))
return true;
return false;
}});
for(File file:files) {
String name=file.getName();
File destFile=new File(destDir,name);
if(!destFile.exists()) {
copyFile(file,destFile);
}else { String nameG=destFile.getName()+"-副本";
File destFileG=new File(destDir,nameG);
copyFile(file,destFileG);
} }
} private static void copyFile(File file, File destFile) { BufferedOutputStream bos=null;
BufferedInputStream bis=null;
try {
bos=new BufferedOutputStream(new FileOutputStream(destFile));
bis=new BufferedInputStream(new FileInputStream(file));
byte[] buf=new byte[1024];
int len;
while((len=bis.read(buf))!=-1) {
bos.write(buf, 0, len);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
} private static File getDir() { Scanner scan=new Scanner(System.in);
System.out.println("请输入一个目录");
String str=scan.nextLine();
File dir=new File(str);
if(!dir.exists()) {
System.out.println("目录不存在.");
}
if(!dir.isDirectory()) {
System.out.println("不是一个目录");
}
return dir;
} }
对加密文件计算字母个数
package com.swift.jinji; import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Comparator;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap; /*在d盘目录下有一个加密文件a.txt(文件里只有英文和数字),密码是“heima”
当密码输入正确时才能读取文件里的数据。现要求用代码来模拟读取文件的过程,并统计文件里各个字母出现的次数,并把统计结果按照如下格式输出到d盘的count.txt中。
a:2个
b:3个
c:4个
............*/ public class PasswordFileCharacterNums2 { public static void main(String[] args) { File passwordFile=new File("d:/stu.txt");
String password="heima";
readFile(passwordFile,password); } private static void readFile(File passwordFile, String password) { Scanner scan =new Scanner(System.in);
while(true) { System.out.println("请输入一个正确的文件密码");
String passwordInput=scan.nextLine();
if(passwordInput.equals(password)) {
System.out.println("文件密码正确.");
break;
}
}
BufferedReader br=null;
BufferedWriter bw=null;
try {
br=new BufferedReader(new FileReader(passwordFile));
File destFile=new File("count.txt");
bw=new BufferedWriter(new FileWriter(destFile));
Map<Character,Integer> map=new TreeMap<>(new Comparator<Character>() {
@Override
public int compare(Character o1, Character o2) {
int num=(int)o1-(int)o2;
return num;
}
});
String line;
while((line=br.readLine())!=null) {
char[] chars=line.toCharArray();
for(char c:chars) {
if(!map.containsKey(c)) {
map.put(c, 1);
}else {
map.put(c, map.get(c)+1);
}
}
}
System.out.println(map);
for(Character c:map.keySet()) {
bw.write(" "+c+":"+map.get(c)+"个");
bw.newLine();
bw.flush();
}
System.out.println("map输出成功"); } catch (FileNotFoundException e) {
e.printStackTrace();
} catch(IOException e) {
e.printStackTrace();
}finally {
try {
bw.close();
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }
java基础IO流 复制键盘录入的目录,复制其中的.java文件到指定目录,指定目录中有重名,则改名 对加密文件计算字母个数的更多相关文章
- Java基础---Java---IO流-----读取键盘录入、InputStreamReader、转换流、OutputStreamWriter、InputStreamReader
字符流: FileReader FileWriter BufferedReader BufferedWriter 字节流: FileInputStream FileOutputStream Buffe ...
- Java基础-IO流对象之打印流(PrintStream与PrintWriter)
Java基础-IO流对象之打印流(PrintStream与PrintWriter) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.打印流的特性 打印对象有两个,即字节打印流(P ...
- Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream)
Java基础-IO流对象之序列化(ObjectOutputStream)与反序列化(ObjectInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.对象的序 ...
- Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader)
Java基础-IO流对象之字符缓冲流(BufferedWriter与BufferedReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字符缓冲流 字符缓冲流根据流的 ...
- Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream)
Java基础-IO流对象之字节缓冲流(BufferedOutputStream与BufferedInputStream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我们学习字 ...
- Java基础-IO流对象之字符类(FileWrite与FileReader)
Java基础-IO流对象之字符类(FileWrite与FileReader) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.常见编码简介 1>ASCII 我们知道计算机是 ...
- Java基础-IO流对象之字节流(Stream)
Java基础-IO流对象之字节流(Stream) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在前面我分享的笔记中,我们一直都是在操作文件或者文件夹,并没有给文件中写任何数据.现 ...
- 《Java基础——IO流》
Java基础--IO流 一.字节流: 1.输入流 (InputStream) 规则: 此处用于读取txt文件中的内容. 代码: import java.io.*; public c ...
- Java基础IO流(二)字节流小案例
JAVA基础IO流(一)https://www.cnblogs.com/deepSleeping/p/9693601.html ①读取指定文件内容,按照16进制输出到控制台 其中,Integer.to ...
随机推荐
- animition动画的加入
很多时候我们把PopupWindow用作自定义的菜单,需要一个从底部向上弹出的效果,这就需要为PopupWindow添加动画. 在工程res下新建anim文件夹,在anim文件夹先新建两个xml文件 ...
- Neutron命令测试5
jolin@jolin:/$ route -nKernel IP routing tableDestination Gateway Genmask Flags Metric Ref Use Iface ...
- LeetCode 455.分发饼干(C++)
假设你是一位很棒的家长,想要给你的孩子们一些小饼干.但是,每个孩子最多只能给一块饼干.对每个孩子 i ,都有一个胃口值 gi ,这是能让孩子们满足胃口的饼干的最小尺寸:并且每块饼干 j ,都有一个尺寸 ...
- 分布式数据库sort那些事儿
待填. 收回之前的填坑时间. 计划永远没有变化快,所有周末都奉献上还是有干不完的活,待闲时再来填..
- React.js 小书 Lesson5 - React.js 基本环境安装
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson5 转载请注明出处,保留原文链接和作者信息. 安装 React.js React.js 单独使 ...
- attr()与setAttribute()的区别
先看红色标注的: 这里传过来的this是个元素节点,因此currentTr也得用获取节点的方式parentNode去获取,而不能写parent(),这是第一个需要注意的地方. 第二个问题,就是怎么给c ...
- angularJS ui router 多视图单独刷新问题
场景:视图层级如下 view1 --view11 --view111 需求:view11的一个动作过后,单独刷新view12 解决方式:修改层级设计 view1 --view11 --view111 ...
- 让你分分钟学会 javascript 闭包
闭包,是 javascript 中重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是ECMA规范给的定义,如果没有实战经验,你很难从定义去理解它.因此,本文不会对闭包的概念进行大篇幅描述 ...
- 微信小程序电商实战-入门篇
小程序开发工具有新版本更新啦!开发体验更好了,详情可以查看微信公众平台-小程序https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/devtools.h ...
- (生产)animate.css 动画库
官网:https://daneden.github.io/animate.css/ Animate.css是一个有趣的,跨浏览器的css3动画库 用法 首先引入animate css文件: &l ...