IO框架复习一

IO框架: file类 字节流 字符流
一 file类的应用:

按照要求打印文件名 里面是文件就递进tab在打印,依次类推
public class printfMuLu {

public static void main(String[] args) {
printf.bianLi(new File(“e:\a”));
}
}
class printf{
private static int level=0;//此标记量得置于方外,不然每次清零,不会打印tab
public static void bianLi(File file){
//文件为空,是文件,或文件为空直接返回
if(file==null){
if(file.isFile()||file.listFiles().length==0){
return;
}
}else{
//得到文件
File[] files = file.listFiles();
//排序
File[] files1 = paixu(files);
//遍历文件
for(File f:files1){
StringBuffer sb=new StringBuffer();
if(f.isFile()){
sb.append(printfTab(level));
sb.append(f.getName());
}else{
sb.append(printfTab(level));
sb.append(f.getName());
sb.append(“\”);
}
System.out.println(sb.toString());
//是文件就递归
if(f.isDirectory()){
level++;
bianLi(f);
level–;
}
}
}
}
//嵌套文件个数和对应的打印tab数
public static String printfTab(int number){
StringBuffer sb=new StringBuffer();
for(){
sb.append(“\t”);
}
return sb.toString();
}
//先文件夹后文件 这个过程可以省略 一般创建文件时文件夹都在上面文件在下面
public static File[] paixu(File[] file){
ArrayList list=new ArrayList();
for(File f:file){
if(f.isDirectory()){
list.add(f);
}
}
for(File f:file){
if(f.isFile()){
list.add(f);
}
}
File[] files = list.toArray(new File[list.size()]);
return files;
}
}

递归思想及 求阶乘:
在函数中自己调用自己 一定的有出口
public class DIGUIDemo {
public static void main(String[] args) {
System.out.println(diGui(5));
}
public static int diGui(int number){
//递归出口
if(number==1){
return 1;
}
else{
return number*diGui(number-1);
}
}
}
二 字节流: InputStream和OutputStream 都为抽象类 不能实例化

file 和 字节流 的结合练习 复制文件夹到指定目录
public class CopyMuLuDemo {
public static void main(String[] args) {
copyMuLu(new File(“e:\a”),”f:\a”);
}
public static void copyMuLu(File file,String newpath){
File[] files = file.listFiles();
for(File f:files){
if(f.isFile()){
try {
copyFile(f.getPath(),newpath+”\”+f.getName());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
File file1=new File(newpath+”\”+f.getName());
if(!file1.exists()){
file1.mkdirs();
}
//此处递归时newpath变量为的file1的路径 非f的路径
copyMuLu(f,file1.getPath());
}
}
}
public static void copyFile(String oldpath,String newPath) throws IOException{
FileInputStream fis=null;
FileOutputStream fos=null;
fis=new FileInputStream(oldpath);
fos=new FileOutputStream(newPath);
byte[] buff=new byte[1024];
int len=0;
while((fis.read(buff)!=-1)){
fos.write(buff, 0, len);
}
fos.close();
fis.close();
}

三 字符流 Reader Writer 类 都为抽象类
字节流 字符流之间的转换:
网络编程 tcp/ip 中应用到的:
BufferedReader br=new BufferedReader(new InputStreamReader(socket.getInputStream()));
将socket获取的字节输入流通过InputStreamReader转换流变成字符流在通过缓冲流BufferedReader进行读的操作

四:java中输入与输出并不是是相互独立的,有一个类能完成输入的同时完成输出,RandomAccessFile

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值