标题:出现了错误
只看楼主
kingyor
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2006-6-4
 问题点数:0 回复次数:3 
出现了错误
package xi;
import java.io.*;
public class Xigust{
public void setstr(String filename,String str){
try{
RandomAccessFile a = new RandomAccessFile(filename,"rw");
long f = a.length();
long f1 = 0;
if(f==f1){
File newfile = new File(filename);
a = new RandomAccessFile(newfile,"rw");
a.writeBytes(str);
}
else{String oldstr = null;
while(f1<f){
oldstr = oldstr+ a.readLine();
f1 = a.getFilePointer();
}
/*str = str + oldstr;*/
a.writeBytes(str);
}
}
catch (IOException e1) {
e1.printStackTrace();
}
}
public String getxifile(String filename){//getxifile方法
String m = "<br/>";
try{
RandomAccessFile a = new RandomAccessFile(filename,"rw");
long f = a.length();
long f1 = 0;
if(f==f1){
return m;
}
else{
String oldstr = null;
while(f1<f){
oldstr = oldstr+ a.readLine();
f1 = a.getFilePointer();
}
m = oldstr;
return m;
}
}
catch(IOException e1){
e1.getMessage();
}
return m;
}
public static void main(String[] args){
Xigust s = new Xigust();
String d=s.getxifile("F:\\www\\xi\\txt\\b.txt");
System.out.print(d);//这里没有问题,可以正常out。print
}
}


下面是一个JSP
<%@ page import="xi.*,java.io.*"%>
<%
Xigust yuxi =new Xigust();
String path="F:\\www\\xi\\txt\\b.txt";
out.println(yuxi.getxifile(path));%>//这里就有问题了,怎么办?
搜索更多相关主题的帖子: String oldstr filename new 
2007-05-28 21:35
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
得分:0 
以下是引用kingyor在2007-5-28 21:35:54的发言:
package xi;
import java.io.*;
public class Xigust{
public void setstr(String filename,String str){
try{
RandomAccessFile a = new RandomAccessFile(filename,"rw");
long f = a.length();
long f1 = 0;
if(f==f1){
File newfile = new File(filename);
a = new RandomAccessFile(newfile,"rw");
a.writeBytes(str);
}
else{String oldstr = null;//这里你改成String oldstr="";再试试吧!而且文件读写完毕最好记得关闭!
while(f1<f){
oldstr = oldstr+ a.readLine();
f1 = a.getFilePointer();
}
/*str = str + oldstr;*/
a.writeBytes(str);
}
}
catch (IOException e1) {
e1.printStackTrace();
}
}
public String getxifile(String filename){//getxifile方法
String m = "<br/>";
try{
RandomAccessFile a = new RandomAccessFile(filename,"rw");
long f = a.length();
long f1 = 0;
if(f==f1){
return m;
}
else{
String oldstr = null;
while(f1<f){
oldstr = oldstr+ a.readLine();
f1 = a.getFilePointer();
}
m = oldstr;
return m;
}
}
catch(IOException e1){
e1.getMessage();
}
return m;
}
public static void main(String[] args){
Xigust s = new Xigust();
String d=s.getxifile("F:\\www\\xi\\txt\\b.txt");
System.out.print(d);//这里没有问题,可以正常out。print
}
}


下面是一个JSP
<%@ page import="xi.*,java.io.*"%>
<%
Xigust yuxi =new Xigust();
String path="F:\\www\\xi\\txt\\b.txt";
out.println(yuxi.getxifile(path));%>//这里就有问题了,怎么办?


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-05-29 10:04
kingyor
Rank: 1
等 级:新手上路
帖 子:66
专家分:0
注 册:2006-6-4
得分:0 
太神奇了,居然可以了,而且UTF-8乱码问题也没有了~~~~~~怎么会这样呢?

宝哥啊宝哥~~命苦啊命苦啊~~~
2007-05-29 19:20
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
得分:0 
因为你这里String oldstr = null

后面这里的"oldstr = oldstr+ a.readLine();"oldstr还是NULL,就算加上了后面的字符串也是NULL开头,所以后面使用NULL当然错误了!
任何等于NULL的变量使用之间都需要初始化,字符串就让它等于""空.这是个好习惯!

还有你文件读取完成之后要对文件,输入输出流进行CLOSE操作,这也是好习惯!


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2007-05-30 09:19



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-143100-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.168573 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved