问题描述
- 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; }
解决方案
可能存在一些诸如换行符的不可视字符
解决方案二:
String length()是字符个数,而不是字节数。
应该使用
byte[] data = str.getBytes();
使用data.length获取字节的数目。
解决方案三:
java.lang.String.length() 方法返回此字符串的长度。长度是等于Unicode代码单元中的字符串的数目
java.io.File.length() 返回此抽象路径名定义的文件的长度,以字节为单位。
时间: 2024-09-17 06:02:50