2011-07-26 184 views
0

我正在嘗試讀取java中的文件。以下是代碼。文件讀取問題

String str = ".\\SomeFileName"; 

    File file = new File(str); 

    InputStream is = new FileInputStream(file.getPath()); 

FileNotFoundException在最後一行中被拋出。有人可以幫忙嗎?

+3

該文件在哪裏以及您從哪裏調用此代碼? –

+0

首先它在本地C目錄中,我認爲可能存在一些問題,所以我放在當前目錄中。 –

+0

另外,你是否嘗試使用正斜槓(或在這種情況下,根本沒有點斜線)? –

回答

2

您需要確定您當前的工作目錄。您可以通過以下方式找出當前工作目錄:

String curDir = System.getProperty("user.dir"); 
0

您可以用兩種方式指定文件;無論是絕對的,如

String fileName1 = "c:\temp\myfile.txt"; \\For Windows 
String fileName2 = "/home/qwerky/myfile.txt"; \\For Linux 

或相對的,例如

String fileName3 = "myfile.txt"; 

如果您使用的是相對路徑,那麼路徑是相對於Java的當前工作目錄。你可以通過獲取文件「。」來找到它。並推動絕對路徑。

File cwd = new File("."); 
System.out.println("Current working directory is " + cwd.getAbsolutePath()); 
0

嘗試通過給絕對路徑...完整的目錄路徑。

File file = new File("C:\\abc.txt"); 

然後再測試一下。 STR是有一個字符串文件名

File file = new File(str); 
String absolutePath = file.getAbsolutePath(); 
System.out.println(absolutePath); 
0

下面的程序工作正常,請首先運行它只是取消對註釋聲明和評論的InputStreamReader中陳述

 
import java.io.BufferedReader; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.PrintStream; 

public class FileRead { 
public static void main(String args[]){ 
    try{ 
     //String str = ".\\SomeFileName"; 

      File file = new File(".\\file.csv"); 

      // FileWriter writer=new FileWriter(file); 
      //writer.write("it can writer"); 
      //writer.flush(); 

      InputStream is = new FileInputStream(file.getPath()); 
      BufferedReader br=new BufferedReader(new InputStreamReader(is)); 
      System.out.println(br.readLine()); 


    }catch(Exception e){ 
     e.printStackTrace(); 
    } 


} 
} 

我認爲你有問題將該文件放在正確的位置