2017-03-13 12 views
0

私のテキストファイルmombirthday.txtは、自分のsrcファイルと同じEclipseディレクトリにあります。例外java FileUtils.readFileToByteArray readFileToByteArrayを試すとき

例外がスローされています(ファイルは存在しません)。

私は、ファイルへの修飾パスを使用しようとしましたが、別の例外がスローされました。

私は数え切れないほどの例を見つけたが、私は、ファイルが置かれるべき場所不確実だと私はきちんと

私のプロジェクトは、ReadFile関数と呼ばれるファイルにソースコードやテキストファイルをパスを参照する必要がありますどのようにともにsrcディレクトリ

import java.io.File; 
import java.io.IOException; 
import org.apache.commons.io.FileUtils; 

public class ReadFile { 
    public static void main(String[] args){ 
    try{ 
    //File 'mombirthday.txt' does not exist 
    //byte[] bytesInput = FileUtils.readFileToByteArray(new File("mombirthday.txt")); 

    //File 'mombirthday.txt' does not exist 
byte[] bytesInput = FileUtils.readFileToByteArray(new File("/ReadFile/src/mombirthday.txt"));** 

    }catch(IOException e){ 
    System.out.println(e.getMessage()); 
    } 
} 
} 
+1

「/ReadFile/src/mombirthday.txt」あなたがいますここで絶対パスを参照します。 /はルートディレクトリです – vhula

答えて

0

あなたがそのライブラリ呼び出しに渡すパスは、プロジェクトの設定を知らない、または気にしません。

これで、あなたは今、ファイルシステムのルートを指しています。まず、絶対パスに変更することができます。

0

それははるかに良い、絶対パスを使用することではなく、クラスパス上のファイルを配置し、クラスローダを使用して、それを見つけることはありません。

InputStream fileIS = getClass().getClassLoader().getResourceAsStream("mombirthday.txt"); 
StringWriter writer = new StringWriter(); 
IOUtils.copy(fileIS, writer, encoding); 
String text = writer.toString(); 
0
public static void readFile(){ 
    try { 
     // byte[] bytesInput = FileUtils.readFileToByteArray(new File("C:/Users/mavensi/Desktop/catalina_14.log")); 
     byte[] bytesInput = IoUtils.readBytes(new File("C:/Users/mavensi/Desktop/catalina_14.log")); 
     System.err.println(bytesInput.length); 
    }catch(IOException e){ 
     System.out.println(e.getMessage()); 
    } 
}