fileinput怎么也读不了文件,菜鸟求解答!!

问题描述:

学习JAVA卡在FILEINPUT里了,费了一天功夫都无法解决读文件字节流的问题,求高手帮忙看看这段代码,用了两个方法都没法读出来,运行时总显示“FileNotFoundException”。用开头前三行代码检测过555.txt文件确实存在并且可读(显示TRUE),也不是编码问题,GBK和UTF-8都试过
package question;
import java.io.*;
import java.io.File;
import java.io.FileInputStream;
public class question1 {
public static void main(String[] args) {
/*File fin1=new File("D:\555.txt"); //本行及以下两行检测555.txt文件是否存在及是否可读,以便排除这两种情况
System.out.println("文件是否存在:"+fin1.exists());
System.out.println("文件能否读取:"+fin1.canRead());*/

/*String sp = File.separator;//获取名称分隔符        
FileInputStream fin1 = new FileInputStream("D:"+sp+"555.txt");  */  //本行及上一行代码为方法1,下一行代码为方法2,任选一种

FileInputStream fin1 = new FileInputStream("D:\\555.txt");

}
}

可能真的是你的路径有问题,建议在使用文件流读取文件时,对文件进行一个判空操作,确保文件存在才进行读取,否则若文件不存在则会报Filenotfound异常
public static void main(String[] args) {

    File f=new File("D:\\a.txt");
    FileInputStream fs=null;
    try {
        if(f.exists()){
        fs=new FileInputStream(f);
        byte[] buff=new byte[2014];
        int i=0;
                while((i=fs.read(buff))!=-1){
                    System.out.println(i);
                }
        }else{
            System.out.println("文件不存在");
            f.createNewFile();
            fs=new FileInputStream(f);
            byte[] buff=new byte[2014];
            int i=0;
                    while((i=fs.read(buff))!=-1){
                        System.out.println(i);
                    }
        }
    } catch (Exception e) {

        e.printStackTrace();
    }


}

FileNotFoundException这个异常是文件找不到的问题,不是你说的读不出文件内容,一般是路径问题,linux 和 windows的路径符号是不一样的,你要确保你的路径是正常的,并且该文件存在才会避免这个问题。