是(int)(Math.random()*1000000);不是((int)Math.random()*1000000);
2014-10-07 17:30
295 查看
今天在写一个IO程序的时候,出现了以下问题:
总是写不到文件里面,我还以为怎么回事,打印出来一看,全都是0!
后来改掉,问题才得以解决!
我们知道,如果程序如下,k肯定等于100:
程序如果如此,你猜K打印出来是多少行呢?(k = 50)为什么呢?
也行,你觉得应该是99,因为在while的时候,少了一行嘛
但是结果 是(k = 50)为什么呢?
因为,每次都会在while里面判断,所以每次都会少一行!
package io; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; public class Buffer { public static void main(String[] args) { try { //FileReader one = new FileReader("D:" + File.separator + "one.txt"); FileWriter owe = new FileWriter("D:" + File.separator + "one.txt"); //BufferedReader br = new BufferedReader(one); BufferedWriter bw = new BufferedWriter(owe); for (int i = 0; i < 100; i++) { int j = ((int)Math.random()*1000000); bw.write(j); System.out.println(j); bw.newLine(); } bw.flush(); bw.close(); System.out.println("done!"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
总是写不到文件里面,我还以为怎么回事,打印出来一看,全都是0!
后来改掉,问题才得以解决!
我们知道,如果程序如下,k肯定等于100:
package io; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class Buffer { public static void main(String[] args) { int k = 0; try { String s = null; FileReader one = new FileReader("D:" + File.separator + "one.txt"); FileWriter owe = new FileWriter("D:" + File.separator + "one.txt"); BufferedWriter bw = new BufferedWriter(owe); BufferedReader br = new BufferedReader(one); for (int i = 0; i < 100; i++) { int j = (int)(Math.random()*1000000); bw.write(j); //System.out.println(j); bw.newLine(); } bw.flush(); while ((s = br.readLine()) != null) { System.out.println(s); k++; } System.out.println(k + " KKKKKKKKKKKKKK "); bw.close(); br.close(); System.out.println("done!"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
程序如果如此,你猜K打印出来是多少行呢?(k = 50)为什么呢?
package io; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class Buffer { public static void main(String[] args) { int k = 0; try { String s = null; FileReader one = new FileReader("D:" + File.separator + "one.txt"); FileWriter owe = new FileWriter("D:" + File.separator + "one.txt"); BufferedWriter bw = new BufferedWriter(owe); BufferedReader br = new BufferedReader(one); for (int i = 0; i < 100; i++) { int j = (int)(Math.random()*1000000); bw.write(j); //System.out.println(j); bw.newLine(); } bw.flush(); while ((br.readLine()) != null) { System.out.println(br.readLine()); k++; } System.out.println(k + " KKKKKKKKKKKKKK "); bw.close(); br.close(); System.out.println("done!"); } catch (FileNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
也行,你觉得应该是99,因为在while的时候,少了一行嘛
但是结果 是(k = 50)为什么呢?
因为,每次都会在while里面判断,所以每次都会少一行!
相关文章推荐
- 再锻炼,有新发现 Math.random() * n vs Random.nextInt(): 这不是Bug?
- JAVA随机数生成 | Math.random()方法 | 随机生成int、double类型
- Java: Random.nextInt() 和Math.random()的区别
- random.nextInt()与Math.random()基础用法
- Java: Random.nextInt() 和Math.random()的区别
- Random.nextint() 和Math.random()的区别
- java中Random与Math.random用法 生成int随机数
- Random.nextInt()替换Math.random()
- java中的int i=(int)(Math.random()*100)+1;怎样理解?
- Random.nextInt()、Random.nextInt() 和 math.random()区别
- 我也来谈谈Java: Random.nextInt() 和Math.random()的区别
- random.nextInt()与Math.random()基础用法
- Random.nextint() 和Math.random()的区别
- java Random.nextInt()与Math.random()的比较
- random.nextInt()与Math.random()基础用法
- random.nextInt()与Math.random()基础用法
- random.nextInt()与Math.random()区别
- 10、匿名内部类、枚举类、日期、Math、Random、String、equals、StringBuffer、包装类、对象数组、克隆,标准输出3
- 学习笔记_JavaSE_14_正则表达式、Math、Random、System、BigInteger、BigDecimal、Date与DateFormat、Calendar
- 黑马程序员 Java基础之System,Runtime,Date,Calendar,Math.Random对象