数据结构作业心得体验

  计算指定文件大小:

package shangke.dijiuzhou;

import java.io.File;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Diaoyong {
    public  int enen(String dao)

    {
        int length;
        int flag=1;
        Path path=Paths.get(dao);
        try
        {
            DirectoryStream<Path> children=Files.newDirectoryStream(path);
            for(Path child:children)
            {
                flag=1;
                String lujing;
                lujing=child.toString();
                length=lujing.length();
                if(length==0)
                {
                    return 0;
                }
                char sta[]=new char[1000];
                sta=lujing.toCharArray();
                for(int i=0;i<length;i++)
                {
                    if(sta[i]=='\\')
                        {
                                sta[i]='/';
                        }
                    if(sta[i]=='.')
                    {
                        
                        flag=0;
                    }
                }
                lujing=String.valueOf(sta);
                System.out.println(lujing);
                if(flag==1)
                {
                    enen(lujing);
                }
                else
                {
                    DaXiao(lujing);
                    System.out.println("*********************************");
                }
                
                
            }
        }
        catch(Exception e)
        {
            
        }
        return 0;
    }
    void DaXiao(String filestr)
    {
        File file = new File(filestr);
        long size=file.length();
        System.out.println("文件大小为"+size+"字节");
    }
    public static void main(String[] args) {
        {
            Diaoyong sta=new Diaoyong();
            sta.enen("H:/haha");
            
        }
    }

}

这个是通过Path获得文件的名称,然后通过file.length()函数获得文件大小

对文件进行加密:

package shangke.dijiuzhou;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class JiaMi {
    public static void main(String[] args) {
        String sta;
        try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw  
            /* 写入Txt文件 */  
            File writename = new File("H:\\haha\\fuben0.txt"); // 相对路径,如果没有则要建立一个新的output。txt文件  
            writename.createNewFile(); // 创建新文件  
            BufferedWriter out = new BufferedWriter(new FileWriter(writename));  
            
            
            /* 读入TXT文件 */  
            String pathname = "H:\\haha\\wenben0.txt"; // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径  
            File filename = new File(pathname); // 要读取以上路径的input。txt文件  
            InputStreamReader reader = new InputStreamReader(  
                    new FileInputStream(filename));
            BufferedReader br = new BufferedReader(reader);  
            String line = "";  
            line = br.readLine();  
            while (line != null) {  
                int b=line.length();
                sta="";
                for(int i=0;i<b;i++)
                {
                    System.out.print(line.charAt(i)-10);
                    sta=sta+(line.charAt(i)-10);
                }
                out.write(sta+"\r\n");
                    
               // System.out.println();
                
                //System.out.println("**********");
                //System.out.println(line);
                line = br.readLine(); // 一次读入一行数据 
            }   
            out.flush(); // 把缓存区内容压入文件  
            out.close(); // 最后记得关闭文件 */ 
  
        } catch (Exception e) {  
            e.printStackTrace();  
        }
    }

}

 这是英文文本加密对比

就是利用Ascll值来控制符号通过对符号进行固定的增加减少Ascll值,或者有规律的增加或减少。

package shangke.dijiuzhou;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;

public class wenjianfenge {
    public static void main(String[] args) {
        String sta;
        int sum=0;
        int n=0;
        BufferedWriter out = null;
        try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw  
            /* 写入Txt文件 */  
           
            
            
            /* 读入TXT文件 */  
            String pathname = "H:\\gaga\\yuanwenjian.txt"; // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径  
            File filename = new File(pathname); // 要读取以上路径的input。txt文件  
            InputStreamReader reader = new InputStreamReader(  
                    new FileInputStream(filename));
            BufferedReader br = new BufferedReader(reader);  
            String line = "";  
            line = br.readLine();  
            while (line != null) {  
                if(sum%30==0)
                {
                     File writename = new File("H:\\gaga\\fuben"+n+".txt"); // 相对路径,如果没有则要建立一个新的output。txt文件  
                     writename.createNewFile(); // 创建新文件  
                      out = new BufferedWriter(new FileWriter(writename));  
                     n++;
                }
                out.write(line+"\r\n");
                sum++;
                if(sum%30==0)
                {
                    out.flush();
                    out.close();
                }
                
                    
               // System.out.println();
                
                //System.out.println("**********");
                //System.out.println(line);
                line = br.readLine(); // 一次读入一行数据 
            }  
            out.flush();
            out.close();
            
  
        } catch (Exception e) {  
            e.printStackTrace();  
        }
    }
}

 

 上面的是将一个文本文件进行分割成若干个小文件

package shangke.dijiuzhou;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.nio.file.DirectoryStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class wenjiandiejia {
    public  int enen(String dao)

    {
        int length;
        int flag=1;
        Path path=Paths.get(dao);
        try
        {
            File writename = new File("H:\\gaga\\diejiawenjian.txt"); // 相对路径,如果没有则要建立一个新的output。txt文件  
             writename.createNewFile(); // 创建新文件  
             BufferedWriter out = new BufferedWriter(new FileWriter(writename)); 
            DirectoryStream<Path> children=Files.newDirectoryStream(path);
            for(Path child:children)
            {
                flag=1;
                String lujing;
                lujing=child.toString();
                length=lujing.length();
                if(length==0)
                {
                    return 0;
                }
                char sta[]=new char[1000];
                sta=lujing.toCharArray();
                for(int i=0;i<length;i++)
                {
                    if(sta[i]=='\\')
                        {
                                sta[i]='/';
                        }
                    if(sta[i]=='.')
                    {
                        
                        flag=0;
                    }
                }
                lujing=String.valueOf(sta);
                //System.out.println(lujing);
                if(flag==1)
                {
                    enen(lujing);
                }
                else
                {
                    xie(lujing,out);
                    System.out.println("*********************************");
                }
                
                
            }
            out.flush();
            out.close();
        }
        catch(Exception e)
        {
            
        }
        return 0;
    }
    void xie(String lujing,BufferedWriter out)
    {
        try { // 防止文件建立或读取失败,用catch捕捉错误并打印,也可以throw  
            /* 写入Txt文件 */  
           
            
            
            /* 读入TXT文件 */  
            String pathname = lujing; // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径  
            File filename = new File(pathname); // 要读取以上路径的input。txt文件  
            InputStreamReader reader = new InputStreamReader(  
                    new FileInputStream(filename));
            BufferedReader br = new BufferedReader(reader);  
            String line = "";  
            line = br.readLine();  
            while (line != null) {  
                
                
                    out.write(line+"\r\n");
               // System.out.println();
                
                //System.out.println("**********");
                //System.out.println(line);
                line = br.readLine(); // 一次读入一行数据 
            }  
            
  
        } catch (Exception e) {  
            e.printStackTrace();  
        }
    }
    public static void main(String[] args) {
        {
            wenjiandiejia sta=new wenjiandiejia();
            sta.enen("H:/gaga");
            
        }
    }

}

 这是对文件进行叠加,利用的是Path遍历文件中的文本文件,然后读取各个子文件的内容写入叠加文件。

猜你喜欢

转载自www.cnblogs.com/yizhixiaozhu/p/11828837.html