A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 小兮网络 初级黑马   /  2013-12-28 15:32  /  1065 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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呢?想不明白呀~~

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

3 个回复

倒序浏览
太长了,就不看了,按你的需求给写了个。
都打印是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));
        }
}

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
你刷新下流数据就ok了
回复 使用道具 举报
是因为PrintWriter写入数据时,是用到缓存的,假如缓存不满时,它是不会自动向文件中写入数据的,只有当缓冲区满时或是close时或是主动调用flush时才会真正的去写入文件。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马