• Java暑期学习第三十天日报


    一、今日学习的内容:

    今日学习12.5章的课后习题。

    二、遇到的问题:

     对于习题的第二题中统计各字符出现的次数不会,经过网上查找资料进行学习解决了问题。关于第三题log4j日志方面的知识点还未学习,准备明天进行学习所以未做,准备学习后进行操作。

    三、明日计划:

    明天计划学习log4j日志的内容。

    今天学习的具体内容如下:

    1.比较File Input Stream流的read方法和FileReader的read方法有什么异同点

    相同点:都能够对文件中的数据和文本进行读取。

    不同点:InputStream提供的是字节流的读取,而非文本读取,这是和Reader类的根本区别。两者读写单位不同、处理对象不同。用Reader读取出来的是char数组或者String ,使用InputStream读取出来的是byte数组。

    import java.io.IOException;
    import java.io.FileInputStream;
    import java.io.FileReader;
    import java.io.InputStreamReader;
    public class readAndInput {
        public static void main(String []args)throws IOException{
            FileInputStream fis=null;
             fis=new FileInputStream("D:\\hello3.txt");
            System.out.println("用FileInputStream的read方法进行数据读取:");
            int len1=0;
            byte[] bufs=new byte[1024];
            while((len1=fis.read(bufs))!=-1) {
                String s1=new String(bufs,0,len1);
                System.out.println(s1);
            }
            fis.close();
            InputStreamReader fr=new FileReader("D:\\hello3.txt");
            int len=0;
            char[] buf=new char[1024];
            System.out.println("用FileReader的read方法进行数据读取:");
            while((len=fr.read(buf))!=-1) {
                String s=new String(buf,0,len);
                System.out.println(s);
            }
            fr.close();
        }
            
    }

    测试截图;

             

    2.编写一个程序,把一段英文字符写进“D:\\data.txt"文件中,然后从文件中读取第一行数据,并统计个字符出现的次数

    package excise;
    import java.io.IOException;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.BufferedReader;
    import java.util.Scanner;
    import java.io.InputStreamReader;
    import java.util.HashMap;
    public class t1 {
        public static void main(String[] args) throws IOException{
            Scanner sc=new Scanner(System.in);
            FileOutputStream fos=new FileOutputStream("D:\\data.txt");
            System.out.println("请输入一段英文字符:");
            String str=sc.nextLine();
            byte [] buf=str.getBytes();
            fos.write(buf);
            fos.close();
            BufferedReader br=new BufferedReader(new InputStreamReader(new FileInputStream("D:\\data.txt")));
            String s=br.readLine();    
            System.out.println("该行数据为:"+s);
            count(s);
            
            }
        public static void count(String s) {
            char[] chars=s.toCharArray();
            HashMap<Character,Integer>hm=new HashMap();
            for(char c:chars) {
                if(!hm.containsKey(c))
                    hm.put(c,1);
                else
                    hm.put(c, hm.get(c)+1);
            }
            for(Character key:hm.keySet())
                System.out.println(key+": "+hm.get(key));
        }
        
    
    }

    测试截图:

  • 相关阅读:
    Linux下安装firefox最新版
    php开发网站编码统一问题
    WordPress前台后台页面打开慢的解决方法
    超链接标签简单的几个样式属性
    jQuery结合Ajax实现简单的前端验证和服务端查询
    Javascript配合jQuery实现流畅的前端验证
    Code-Validator:验证只包含英文字母
    Code-Validator:验证小数
    Code-Validator:验证正整数
    Code-Validator:验证非负整数
  • 原文地址:https://www.cnblogs.com/Lizhichengweidashen/p/13433619.html
Copyright © 2020-2023  润新知