首页 > 后端开发 > 正文

java报错null是什么错误

2024-06-25 01:27:46 | 我爱编程网

java报错null是什么错误很多朋友对这方面很关心,我爱编程网整理了相关文章,供大家参考,一起来看一下吧!

本文目录一览:

java报错null是什么错误

java字符串录入数组后显示null?

原因在于你最后

for循环

输出中i

第一行:a

第二行:bc

那么此时file.length()是多少呢?其实它是'a'、'\n'、'b'、'c'、'\n'五个字符组成,所以此时length=5,然而你读取文件的时候,你用的是readline(),所以会读到两行数据,而你的预期结果也应该是arr数组中有两个

字符串

所有数据读取完后,又由于你arr数组的长度取的是leagth也就是5,此时arr数组的arr[0]="a",arr[1]="bc",arr[2]=null,arr[3]=null,arr[4]=null。所以你最后循环输出arr数组时,后面几个值就是null。

综上,该问题的根本原因在于arr数组长度的定义有误。因为你提前并不能知道文件有多少行,所以你无法确认arr数组到底该设置多少,你就想用file.length()来定义,但file.length()往往是远大于文件行数的。

解决这个问题,可以利用java里的集合List,List在定义的时候不需要声明其长度,最大长度应该是Integer的最大值,使用List的子类ArrayList可以确保顺序无误,将代码修改为:

public static void main(String[] args) throws IOException {

File file = new File("D:/1.txt");

List arr = new ArrayList();

int i = 0;

if (file.exists()) {

FileReader fr = new FileReader(file);

BufferedReader br = new BufferedReader(fr);

String temp;

while ((temp = br.readLine()) != null) {

arr.add(temp);

System.out.println(arr.get(i));

i++;

}

br.close();

fr.close();

for (i = 0; i < arr.size(); i++) {

System.out.println(arr.get(i));

}

}

}

运行结果:

文件内容:

输出:

java报错null是什么错误

java报错null是什么错误

这个是空指针异常,空指针的解决办法: 重点关注报错发生的所在行,通过空指针异常产生的两条主要原因诊断具体的错误。同时为了避免空指针的发生,最好在做判断处理时将“null”或者空值放于设定的值之前。

在Java中一般报空指针异常的原因有以下几种:

1、字符串变量未初始化;

2、接口类型的对象没有用具体的类初始化,比如:

List lt;会报错

List lt = new ArrayList();则不会报错了

3、当一个对象的值为空时,你没有判断为空的情况。你可以试着把下面的代码前加一行代码:

if(rb!=null && rb!="")

改成:

if(rb==null);

if(rb!==null&&rb!="") 或者if((“”).equals(rb))

扩展资料:

空指针异常的报错我爱编程网

root cause

java.lang.NullPointerException

Dao.BookInfor.ImFromClassification(BookInfor.java:31

org.apache.jsp.front.home_jsp._jspService(home_jsp.java:120)

org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)

javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)

org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)

org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)

javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

java报错null是什么错误

java 运行显示null ,为什么

因为变量s变量初始化默认为null的。你还没有对其赋值呢voidMystery(){s="constructor";}不是构造函数,newMystery()时候不会执行的。构造函数这样写publicMystery(){s="constructor";}

以上就是我爱编程网为大家带来的java报错null是什么错误,希望能帮助到大家!

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“java报错null是什么错误”相关推荐