JAVA文件倒序输出
importjava.io.*;publicclasstest4{/***@paramargs*/publicstaticvoidmain(String[]args){t...
import java.io.*;
public class test4 {
/**
* @param args
*/
public static void main(String[] args){
try {
FileInputStream x1=new FileInputStream("c:/1.txt");
FileOutputStream x2=new FileOutputStream("c:/2.txt");
int c=x1.available();
System.out.println(c);
byte[] d=new byte[1];
while(c>0){
System.out.println(c);
x1.read(d,c-1, 1);
x2.write(d);
c--;
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Exception in thread "main" java.lang.IndexOutOfBoundsException
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(Unknown Source)
at test4.main(test4.java:16)
为什么会超出下标? 展开
public class test4 {
/**
* @param args
*/
public static void main(String[] args){
try {
FileInputStream x1=new FileInputStream("c:/1.txt");
FileOutputStream x2=new FileOutputStream("c:/2.txt");
int c=x1.available();
System.out.println(c);
byte[] d=new byte[1];
while(c>0){
System.out.println(c);
x1.read(d,c-1, 1);
x2.write(d);
c--;
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Exception in thread "main" java.lang.IndexOutOfBoundsException
at java.io.FileInputStream.readBytes(Native Method)
at java.io.FileInputStream.read(Unknown Source)
at test4.main(test4.java:16)
为什么会超出下标? 展开
展开全部
byte[] d=new byte[1];
你给的长度、
你看看这里读了几个长度啊?
假设c=5,5个字节
x1.read(d,c-1, 1); c-1的话就是4了啊。所以报错撒、、
好像把1文件内容,反着写到2文件 这个方法不行。具体怎么做我也不知道
你给的长度、
你看看这里读了几个长度啊?
假设c=5,5个字节
x1.read(d,c-1, 1); c-1的话就是4了啊。所以报错撒、、
好像把1文件内容,反着写到2文件 这个方法不行。具体怎么做我也不知道
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
kjkj
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你去查下API文档
你的read方法用错了
另外,楼上的说法是错的,因为read方法读的就是一个byte,和字符问题没关系。
你的read方法用错了
另外,楼上的说法是错的,因为read方法读的就是一个byte,和字符问题没关系。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询