黑马程序员-day20综合练习

---------------------- android培训java培训、期待与您交流! ----------------------


import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.SequenceInputStream;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Set;
import java.util.Vector;


public class day20
{
public static void main(String[] args) throws Exception
{
//文件重命名
File a = new File("a.txt");
a.createNewFile();
Thread.sleep(1200);
File b = new File("b.txt");
a.renameTo(b);
//封装一个文件对象
File c = new File("c.txt");
//封装一个路径对像
File d = new File("F:"+File.separator+"JAVA"+File.separator+"ReviewExercise"+File.separator+"day20"+File.separator+"d");
//判断路径是否是绝对路径
System.out.println("isAbsolute :"+d.isAbsolute());
//组合路径和文件成新对象
File e = new File(d,"e.txt");
//对像是否可执行
System.out.println("canExecute :"+e.canExecute());
//判断文件是否存在
System.out.println("exists :"+e.exists());
//程序退出时删除文件对象
Thread.sleep(1200);
b.deleteOnExit();
//在硬盘上创建文件
c.createNewFile();
//在硬盘上创建目录
d.mkdir();
//得到D盤根目录下文件
File[] files = new File("d:").listFiles();
for(File file : files)
{
System.out.println(file);
}
//显示所有系统盘符
File[] roots = File.listRoots();
for(File root : roots)
{
System.out.println(root);
}
//得到目录及子目录下所有java文件,存入文本文件中
File file = new File("f:\\JAVA");
ArrayList<String> al = new ArrayList<String>();
fileList(file,al);
BufferedWriter bw = new BufferedWriter(new FileWriter("JavaFileList.txt"));
for (Iterator<String> it = al.iterator();it.hasNext();)
{
bw.write(it.next());
bw.newLine();
}
bw.close();
//删除目录下所有文件及目录
File delFiles = new File("F:\\JAVA\\ReviewExercise\\day20\\d");
deleteFiles(delFiles);
//stringPropertyNames 设置系统属性并获取
Properties pro = new Properties();
pro.setProperty("zhangsan","18");
pro.setProperty("lisi","38");
pro.setProperty("wangwu","28");
System.out.println(pro.getProperty("lisi"));
Set<String> s = pro.stringPropertyNames();
System.out.println(s);
for(String str : s)
{
System.out.println(str+pro.getProperty(str));
}
//使用两种方法获取配置文件
FileInputStream fis = new FileInputStream("conf.ini");
pro.load(fis);
System.out.print(pro);
Set<String> s2 = pro.stringPropertyNames();
for(String s3 : s2)
{
System.out.print(s3+pro.getProperty(s3));
}
BufferedReader br2 = new BufferedReader(new FileReader("conf2.ini"));
String buffer = null;
while((buffer = br2.readLine()) != null)
{
String[] str2 = buffer.split("=");
System.out.println("=="+str2[0]+str2[1]);
pro.setProperty(str2[0],str2[1]);
}
//列出集合目录
pro.list(System.out);
//更改某键,重新存回配置文件中
pro.setProperty("zhangsan", "999");
BufferedWriter bw2 = new BufferedWriter(new FileWriter("conf.ini"));
pro.store(bw2, "");
//限制某一程序运行次数
runLimit(5);
//使用PrintWriter将输出字符转为大写,over结束输入
PrintWriter pw = new PrintWriter(System.out,true);
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String buffer1 = null;
while(!(buffer1 = br.readLine()).equals("over"))
{
pw.println(buffer1.toUpperCase());
}
//合并输入流
Vector<FileInputStream> v = new Vector<FileInputStream>();
v.add(new FileInputStream("1.txt"));
v.add(new FileInputStream("2.txt"));
v.add(new FileInputStream("3.txt"));
Enumeration<FileInputStream> en = v.elements();
SequenceInputStream sis = new SequenceInputStream(en);
byte[] buff = new byte[1024];
int length = 0;
FileOutputStream fos2 = new FileOutputStream("4.txt");
while((length = sis.read(buff)) != -1)
{
fos2.write(buff,0,length);
fos2.flush();
}
sis.close();
fos2.close();
//切割文件合并文件
FileInputStream picFIS = new FileInputStream("1.jpg");
FileOutputStream picFOS = null;
byte[] picBuffer = new byte[1024*20];
int picLen = 0,count = 0;
while((picLen = picFIS.read(picBuffer)) != -1)
{
picFOS = new FileOutputStream("pic.part"+(++count));
picFOS.write(picBuffer,0,picLen);
picFOS.close();
}
picFIS.close();
//文件合并
List<FileInputStream> list = new ArrayList<FileInputStream>();
for(int x = 1;x<5;x++)
{
list.add(new FileInputStream("pic.part"+x));
}
final Iterator<FileInputStream> it = list.iterator();
Enumeration<FileInputStream> en2 = new Enumeration<FileInputStream>()
{
public boolean hasMoreElements()
{
return it.hasNext();
}
public FileInputStream nextElement()
{
return it.next();
}
};
SequenceInputStream sis2 = new SequenceInputStream(en2);
FileOutputStream fos3 = new FileOutputStream("1_merge.jpg");
byte[] buffe = new byte[1024];
int leng = 0;
while((leng = sis2.read(buffe)) != -1)
{
fos3.write(buffe,0,leng);
fos3.flush();
}
fos3.close();
}
public static void runLimit(int num) throws Exception
{
File file = new File("limit.ini");
if(!file.exists())
{
file.createNewFile();
}
FileInputStream fis = new FileInputStream(file);
FileOutputStream fos = null;
Properties pro = new Properties();
pro.load(fis);
if(pro.getProperty("count") == null)
{
pro.setProperty("count","1");
fos = new FileOutputStream(file);
pro.store(fos,"");
fos.close();
}
else
{
int count = Integer.parseInt(pro.getProperty("count"));
if(count >= num)
{
System.out.println("使用次数已到,请注册");
}
else
{
fos = new FileOutputStream(file);
pro.setProperty("count", ++count+"");
pro.store(fos,"");
fos.close();
}
}
fis.close();
}
public static void deleteFiles(File f)
{
for(File file : f.listFiles())
{
if(file.isDirectory())
{
deleteFiles(file);
}
System.out.print(file.delete());
}
}
public static void fileList(File files,ArrayList<String> al) throws Exception
{
File[] file = files.listFiles();
for (File f : file)
{
if(f.isDirectory())
{
fileList(f,al);
}
else
{
if(f.getName().endsWith(".java"))
{
al.add(f.getAbsolutePath()+"\\"+f.getName()+"  "+f.length());
}
}
}
}
}


---------------------- android培训java培训、期待与您交流! ----------------------

详细请查看:http://edu.csdn.net/heima

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值