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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 草鱼狂飙 中级黑马   /  2014-5-13 13:27  /  1518 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

老师讲课时都是把数据从文件中读入,并且打印在控制,打印基本都是char类型
假如说有这样一个需求,如图的记事本文件“input.txt”


需要把第一行读入int型变量num;
需要把第二行读入int数组data[num]中;
具体应该怎么操作?
中间有各种空格和一个回车,应该怎么处理?
做平时作业时候遇见这个问题了,求大神不吝赐教!!!

2 个回复

倒序浏览
第一:使用BufferedReader读取一行,得到一个String数据,使用trim() 方法去除空格,使用Integer中的parseInt()方法,把String转成整数。

第二:使用BufferedReader读取一行,得到一个String数据,用split()方法用空格切割String,得到一个String数组,遍历String数组,转成整数存到整数数组中。

评分

参与人数 1技术分 +1 收起 理由
菜小徐 + 1

查看全部评分

回复 使用道具 举报
import java.io.*;
import java.util.*;

public class Test
{
        public static void main(String[] args) throws Exception
        {
                //使用Scanner类的nextInt方法
                File file = new File("a.txt");
                Scanner scan = new Scanner(new FileInputStream(file));
                int in = scan.nextInt();
                System.out.println(in);
                int count = 0;
                List<Integer> list = new ArrayList<Integer>();  //用来保存从流中读取出来的数据
                while(scan.hasNextInt())
                {
                        //System.out.println("+++++++++");
                        //Thread.sleep(500);
                        count++;    //由于不能确定文件后面到底有多少个int型数据,所以只好先确定int型数据的个数,作为数组的长度。
                        in = scan.nextInt();   
                        list.add(in);  //先将读取出来的数据保存在list集合中,再从该集合里取出来放入数组里
                }
                int[] a = new int[count];
                for (int i = 0; i < a.length; i++)
                {
                        a[i] = list.get(i);
                }
                for (int i = 0; i < a.length; i++)
                {
                        System.out.print(a[i] + " ");
                }

                /*如果源文件中的数据是用DataOutputStream写进去的,可用如下方式读取出来
                DataInputStream dis = new DataInputStream(new FileInputStream(file));
                int b = dis.readInt();
                System.out.println(b);*/
        }
}

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马