求助java使用RandomAccessFile流将一个文本文件倒置读出。用文本框和滚动杆来输出结果
importjava.awt.*;importjava.io.*;publicclassdaozhi{publicstaticvoidmain(Stringargs[])...
import java.awt.*;
import java.io.*;
public class daozhi{
public static void main(String args[]){
RandomAccessFile in=null;
try{ in=new RandomAccessFile("gonglve.txt","rw");
long length=in.length(); //获取文件的长度
//long position=0;
for(long i=length-1;i>=0;i--){
in.seek(i*4);
// while(position<length){
String str=in.readLine();
byte b[]=str.getBytes("iso-8859-1");
str=new String(b);
// position=in.getFilePointer();
System.out.println(str);
//}
}
}
catch(IOException e){}
}
}
这个代码编译的时候没有问题,但是运行的时候会出现异常
Exception in thread "main" java.lang.NullPointerException
at daozhi.main(daozhi.java:14)
为什么? 展开
import java.io.*;
public class daozhi{
public static void main(String args[]){
RandomAccessFile in=null;
try{ in=new RandomAccessFile("gonglve.txt","rw");
long length=in.length(); //获取文件的长度
//long position=0;
for(long i=length-1;i>=0;i--){
in.seek(i*4);
// while(position<length){
String str=in.readLine();
byte b[]=str.getBytes("iso-8859-1");
str=new String(b);
// position=in.getFilePointer();
System.out.println(str);
//}
}
}
catch(IOException e){}
}
}
这个代码编译的时候没有问题,但是运行的时候会出现异常
Exception in thread "main" java.lang.NullPointerException
at daozhi.main(daozhi.java:14)
为什么? 展开
展开全部
import java.awt.Container;
import java.io.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class daozhi {
public static void main(String args[]) {
RandomAccessFile in = null;
try {
in = new RandomAccessFile("d:/demo.txt", "rw");
long length = in.length(); //获取文件的长度
long i=length-1;
char ch;
String s="";
while(i>=0){
in.seek(i);//设置文件指针
ch = (char) in.read();
s += ch;
i--;
}
showText(s);
} catch (IOException e) {
}
}
public static void showText(String s){
JFrame f=new JFrame("SetText");//frame
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//close
f.setBounds(0, 0, 300, 200);//location,sise
Container content=f.getContentPane();//panel
JPanel p=new JPanel();
JTextArea t=new JTextArea();//area
JScrollPane scrollPane=new JScrollPane(t);//scroll
t.setRows(1);//row
t.setColumns(10);//col
t.setText(s);//set text
p.add(scrollPane);
content.add(p);
f.setVisible(true);
}
}
呵呵。。。。
已经给楼主调试并成功运行!
正是楼主想要的结果。。。
而且还有文本框各滚动条噢。。
祝楼主早日成功哈!
备注:接毕业设计,价钱面议!
import java.io.*;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class daozhi {
public static void main(String args[]) {
RandomAccessFile in = null;
try {
in = new RandomAccessFile("d:/demo.txt", "rw");
long length = in.length(); //获取文件的长度
long i=length-1;
char ch;
String s="";
while(i>=0){
in.seek(i);//设置文件指针
ch = (char) in.read();
s += ch;
i--;
}
showText(s);
} catch (IOException e) {
}
}
public static void showText(String s){
JFrame f=new JFrame("SetText");//frame
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//close
f.setBounds(0, 0, 300, 200);//location,sise
Container content=f.getContentPane();//panel
JPanel p=new JPanel();
JTextArea t=new JTextArea();//area
JScrollPane scrollPane=new JScrollPane(t);//scroll
t.setRows(1);//row
t.setColumns(10);//col
t.setText(s);//set text
p.add(scrollPane);
content.add(p);
f.setVisible(true);
}
}
呵呵。。。。
已经给楼主调试并成功运行!
正是楼主想要的结果。。。
而且还有文本框各滚动条噢。。
祝楼主早日成功哈!
备注:接毕业设计,价钱面议!
展开全部
String str = in.readLine();
你的length不是判断他有多少行的,
所以你这样放在for循环里面就会有空值
str读不到东西就是NULL的
String str;
int i = 0;
while ((str = in.readLine())!=null) {
in.seek(i * 4);
// while(position<length){
str = in.readLine();
System.out.println(str);
byte b[] = str.getBytes("iso-8859-1");
str = new String(b);
// position=in.getFilePointer();
System.out.println(str);
i++;
//}
}
你的length不是判断他有多少行的,
所以你这样放在for循环里面就会有空值
str读不到东西就是NULL的
String str;
int i = 0;
while ((str = in.readLine())!=null) {
in.seek(i * 4);
// while(position<length){
str = in.readLine();
System.out.println(str);
byte b[] = str.getBytes("iso-8859-1");
str = new String(b);
// position=in.getFilePointer();
System.out.println(str);
i++;
//}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
new RandomAccessFile("gonglve.txt","rw");
注意这句是不是没读到文件。。路径啥的有没有问题。
还有可能是读到最后变成NULL了
注意这句是不是没读到文件。。路径啥的有没有问题。
还有可能是读到最后变成NULL了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议读出来一个StringBuffer里面,然后调用reverse()
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询