• 第九周动手动脑


      计算指定文件大小:

    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+"
    ");
                        
                   // 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+"
    ");
                    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+"
    ");
                   // 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遍历文件中的文本文件,然后读取各个子文件的内容写入叠加文件。

  • 相关阅读:
    Arrays.fill方法的陷阱
    彻底弄懂最短路径问题
    《c++primer》疑惑记录
    C++ 隐含的this 指针
    c++ 内存分配
    抽象 与 封装 区别
    iconv 文件编码转换
    python中文分词工具——结巴分词
    词形变换和词干提取工具(英文)
    python 绘图工具 matplotlib 入门
  • 原文地址:https://www.cnblogs.com/yizhixiaozhu/p/11828837.html
Copyright © 2020-2023  润新知