黑马程序员技术交流社区
标题:
IO拷贝反转代码
[打印本页]
作者:
wjj410830911
时间:
2013-11-13 20:03
标题:
IO拷贝反转代码
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(); x >= 0 ; x--)
{
bw.write(l.get(x));
bw.newLine();
}
br.close();
bw.close();
}
}
复制代码
我做的练习 要把一个文件里的内容反转一下拷贝到另一个文件里 为什么报错了啊?
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 28, Size: 28
at java.util.ArrayList.rangeCheck(ArrayList.java:604)
at java.util.ArrayList.get(ArrayList.java:382)
at 日常学习.练习.Demo1(练习.java:75)
at 日常学习.练习.main(练习.java:24)
复制代码
这个是什么意思啊?
作者:
付凯鹏
时间:
2013-11-13 20:40
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开始计数的,所以求出字符串数组的大小后进行循环的话这里要减一才行吧,否则就会出现数组越界的问题,希望能帮到你
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2