Java FileInputStream空错误
我得到了一个文件本身无法读取的空错误,我做错了什么吗?由于某种原因没有读取文件。我四处搜寻了一段时间,似乎不知道出了什么问题。任何帮助都将不胜感激。此外,inputdata[]字符串数组作为一个全局变量位于顶部,但它确实存在,我遇到的问题是读取文件的过程中,据我所知,其他一切都起作用了。谢谢如果这是windows系统,您需要使用反斜杠Java FileInputStream空错误,java,Java,我得到了一个文件本身无法读取的空错误,我做错了什么吗?由于某种原因没有读取文件。我四处搜寻了一段时间,似乎不知道出了什么问题。任何帮助都将不胜感激。此外,inputdata[]字符串数组作为一个全局变量位于顶部,但它确实存在,我遇到的问题是读取文件的过程中,据我所知,其他一切都起作用了。谢谢如果这是windows系统,您需要使用反斜杠 import java.util.*; import java.io.*; @SuppressWarnings("unused") public class s
import java.util.*;
import java.io.*;
@SuppressWarnings("unused")
public class search
{
public static String[] inputdata;
public static String[] routedata;
public static void main(String[] args)
{
inputdata();
routedata();
}
public static void inputdata()
{
String strline;
File data = new File("C:\\data\\sample_in.txt");
int i=0;
try
{
FileInputStream fstream = new FileInputStream(data);
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
while ((strline = br.readLine()) != null)
{
//inputdata[i]=strline;
System.out.println(strline);
i++;
}
}
catch (Exception e)
{//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
public static void routedata()
{
String strline;
File routes = new File("C:\\data\\routes.txt");
int i=0;
try
{
FileInputStream fstream = new FileInputStream(routes);
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
while ((strline = br.readLine()) != null)
{
//routedata[i]=strline;
i++;
}
}
catch (Exception e)
{//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
}
您得到的是null,因为它找不到文件 如果这是windows系统,则需要使用反斜杠
import java.util.*;
import java.io.*;
@SuppressWarnings("unused")
public class search
{
public static String[] inputdata;
public static String[] routedata;
public static void main(String[] args)
{
inputdata();
routedata();
}
public static void inputdata()
{
String strline;
File data = new File("C:\\data\\sample_in.txt");
int i=0;
try
{
FileInputStream fstream = new FileInputStream(data);
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
while ((strline = br.readLine()) != null)
{
//inputdata[i]=strline;
System.out.println(strline);
i++;
}
}
catch (Exception e)
{//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
public static void routedata()
{
String strline;
File routes = new File("C:\\data\\routes.txt");
int i=0;
try
{
FileInputStream fstream = new FileInputStream(routes);
DataInputStream in = new DataInputStream(fstream);
BufferedReader br = new BufferedReader(new InputStreamReader(in));
while ((strline = br.readLine()) != null)
{
//routedata[i]=strline;
i++;
}
}
catch (Exception e)
{//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
}
File data = new File("C:\\data\\sample_in.txt");
您得到的是null,因为它找不到文件 对文件名执行此操作
File data = new File("C:\\data\\sample_in.txt");
public static void inputdata()
{
String strline;
int i=0;
try
{
BufferedReader br = new BufferedReader(new FileReader("C:\\data\\sample_in.txt"));
while ((strline = br.readLine()) != null)
{
inputdata[i]=strline;
i++;
}
}
catch (Exception e)
{//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
对文件名执行此操作
public static void inputdata()
{
String strline;
int i=0;
try
{
BufferedReader br = new BufferedReader(new FileReader("C:\\data\\sample_in.txt"));
while ((strline = br.readLine()) != null)
{
inputdata[i]=strline;
i++;
}
}
catch (Exception e)
{//Catch exception if any
System.err.println("Error: " + e.getMessage());
}
}
请提供引发的确切异常,以及该异常所指的行。'I'm geting null error for the file本身无法读取。'不,您不能。这里没有证据表明您的问题与“无法读取文件本身的null错误”或您的标题“FileInputStream null错误”相对应。使用您发布的代码,这两种方法都是不可能的。此外,I/O堆栈中的DataInputStream完全没有意义。您的问题无法以当前形式得到回答。请提供引发的确切异常,以及该异常所指的行。“我收到一个空错误,文件本身无法读取。”不,您没有。这里没有证据表明您的问题与“无法读取文件本身的null错误”或您的标题“FileInputStream null错误”相对应。使用您发布的代码,这两种方法都是不可能的。此外,I/O堆栈中的DataInputStream完全没有意义。您的问题无法以目前的形式得到回答。我应该澄清的是,这不是阻止程序运行的错误,错误null是由捕获产生的,并在控制台上作为错误:null输出。您捕获的错误没有消息集。在执行System.err.println()之前先执行e.printStackTrace(),这很奇怪。这是字符串数组,它不能存储整行吗?您初始化了字符串数组的大小吗?如果在开始填充之前大小尚未确定,则最好使用arraylist而不是数组。@Freedoler799——这就是问题所在。您的数组未初始化。初始化它们,如
String[]inputdata=newstring[100]代码>注意,这只允许您添加100行,超过100行,您仍然会得到相同的NPE。我应该澄清一下,这不是阻止程序运行的错误,错误null是由捕获导致的,并在控制台上作为错误:null输出。您捕获的错误没有消息集。在执行System.err.println()之前先执行e.printStackTrace(),这很奇怪。这是字符串数组,它不能存储整行吗?您初始化了字符串数组的大小吗?如果在开始填充之前大小尚未确定,则最好使用arraylist而不是数组。@Freedoler799——这就是问题所在。您的数组未初始化。初始化它们,如String[]inputdata=newstring[100]代码>请注意,这只允许您添加100行,除此之外,您仍将获得相同的NPE。