开发者社区> 问答> 正文

File.length和BufferedReader.length的问题

读取文件File,累加read.length大概是file.length的85%左右。这是怎么回事?求大神帮忙看看。

 File file = new File(path);
            long fileLength = file.length();
            length = reader.readLine().length();// 去除表头
            // 解析
            while ((line = reader.readLine()) != null) {
                try {
                    length += line.length();
                    } catch (NumberFormatException e) {
                    Log.d("NumberFormatException", e.getMessage());
                } catch (Exception e) {
                    e.printStackTrace();
                }
                }
                Log.d("Test", myPercent(length, fileLength));
                public static String myPercent(long y, long z) {
        String baifenbi = "";// 接受百分比的值
        double baiy = y * 1.0;
        double baiz = z * 1.0;
        double fen = baiy / baiz;
        NumberFormat nf = NumberFormat.getPercentInstance(); // 注释掉的也是一种方法
        nf.setMinimumFractionDigits(2); // 保留到小数点后几位
        // DecimalFormat df1 = new DecimalFormat("##.00%"); // ##.00%
        // 百分比格式,后面不足2位的用0补齐
        baifenbi = nf.format(fen);
        // baifenbi = df1.format(fen);
        return baifenbi;
    }

展开
收起
蛮大人123 2016-03-23 15:17:43 2324 0
2 条回答
写回答
取消 提交回答
  • File.length 是文件大小,字节个数,BufferedReader.length 是字符个数, 这是一个字节和字符的问题
    2019-07-17 19:11:15
    赞同 展开评论 打赏
  • 我说我不帅他们就打我,还说我虚伪

    String length()是字符个数,而不是字节数。
    应该使用
    byte[] data = str.getBytes();
    使用data.length获取字节的数目。

    2019-07-17 19:11:15
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载