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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wjj410830911 中级黑马   /  2013-11-13 20:03  /  1039 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1.        
  2. public class 练习
  3. {

  4.         /**
  5.          * @param args
  6.          * @throws IOException
  7.          */
  8.         public static void main(String[] args) throws IOException
  9.         {
  10.                 Demo1();
  11.         }
  12. private static void Demo1() throws FileNotFoundException, IOException {
  13.                 BufferedReader br =
  14.                                 new BufferedReader(new FileReader("day22笔记.txt"));
  15.                
  16.                 List<String> l = new ArrayList<>();
  17.                 String str ;
  18.                 while ((str = br.readLine())!= null)
  19.                 {
  20.                         l.add(str);
  21.                 }
  22.                 BufferedWriter bw =
  23.                                 new BufferedWriter(new FileWriter("反转文件.txt"));
  24.                 for(int x = l.size(); x >= 0 ; x--)
  25.                 {
  26.                         bw.write(l.get(x));
  27.                         bw.newLine();
  28.                        
  29.                 }
  30.                 br.close();
  31.                 bw.close();
  32.         }

  33. }
复制代码
我做的练习  要把一个文件里的内容反转一下拷贝到另一个文件里  为什么报错了啊?
  1. Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 28, Size: 28
  2.         at java.util.ArrayList.rangeCheck(ArrayList.java:604)
  3.         at java.util.ArrayList.get(ArrayList.java:382)
  4.         at 日常学习.练习.Demo1(练习.java:75)
  5.         at 日常学习.练习.main(练习.java:24)
复制代码
这个是什么意思啊?

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 加油吧,少年。其实,细心一点,你自己也能.

查看全部评分

1 个回复

倒序浏览
        
public class 练习
{

        /**
         * @param args
         * @throws IOException
         */
        public static void main(String[] args) throws IOException
        {
                Demo1();
        }
private static void Demo1() throws FileNotFoundException, IOException {
                BufferedReader br =
                                new BufferedReader(new FileReader("day22笔记.txt"));
               
                List<String> l = new ArrayList<>();
                String str ;
                while ((str = br.readLine())!= null)
                {
                        l.add(str);
                }
                BufferedWriter bw =
                                new BufferedWriter(new FileWriter("反转文件.txt"));
                for(int x = l.size()-1; x >= 0 ; x--)
                {
                        bw.write(l.get(x));
                        bw.newLine();
                        
                }
                br.close();
                bw.close();
        }

}

试试这个应该可以了,修改了  for(int x = l.size()-1; x >= 0 ; x--)中的int x = l.size()-1;一般程序都是从0开始计数的,所以求出字符串数组的大小后进行循环的话这里要减一才行吧,否则就会出现数组越界的问题,希望能帮到你

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

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