黑马程序员技术交流社区
标题:
java编程问题
[打印本页]
作者:
小兮网络
时间:
2013-12-28 15:32
标题:
java编程问题
import java.io.*;
import java.util.*;
public class WriteReadData{
public static void main(String[] args) throws Exception{
File file=new java.io.File("Exercise8_22.txt");
PrintWriter output=new PrintWriter(file);
for(int i=0;i<100;i++){
output.print((int)(Math.random()*1000)+" ");
}
Scanner input=new Scanner(file);
int[] num=new int[100];
int j=0;
while(input.hasNext()){
num[j]=input.nextInt();
j++;
}
numSort(num);
for(int i=0;i<100;i++){
if((i+1)%10==0)
System.out.println(num[i]+" ");
else
System.out.print(num[i]+" ");
}
output.close();
input.close();
}
public static void numSort(int[] num){
for(int i=1;i<100;i++){
int currentElement=num[i];
int k;
for(k=i-1;k>=0&&num[k]>currentElement;k--){
num[k+1]=num[k];
}
num[k+1]=currentElement;
}
}
}
目的是为了创建一文件并随机写入100个整数,随后再显示出已经被排序过的这100个整数,为什么运行结果输出的都是0呢?想不明白呀~~
作者:
刘汉文
时间:
2013-12-29 14:02
太长了,就不看了,按你的需求给写了个。
都打印是0的话,应该是文件里没有写进内容。
package mine;
import java.io.*;
import java.util.Arrays;
public class Demo {
@SuppressWarnings("resource")
public static void main(String[] args) throws Exception
{
File file=new File("f:\\abc.txt");
PrintWriter pw=new PrintWriter(file);
BufferedReader bufr=new BufferedReader(new FileReader(file));
int[] arr=new int[100];
int pos=0;
for(int i=0;i<100;i++)
{
pw.println((int)(0+Math.random()*100+1));
}
pw.close();
String s;
while((s=bufr.readLine())!=null)
{
arr[pos++]=new Integer(s).intValue();
}
Arrays.sort(arr);
System.out.println(Arrays.toString(arr));
}
}
作者:
费破的可
时间:
2013-12-29 15:06
你刷新下流数据就ok了
作者:
渐渐不懂了
时间:
2013-12-30 14:11
是因为PrintWriter写入数据时,是用到缓存的,假如缓存不满时,它是不会自动向文件中写入数据的,只有当缓冲区满时或是close时或是主动调用flush时才会真正的去写入文件。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2