2014-11-21 39 views
1

我想在我的Android應用程序中創建一個XML文件。 這個文件我想寫入我的Android設備的文檔文件夾。 後來我想使用USB將我的Android設備連接到我的電腦,並從文檔文件夾中讀取該XML文件。 我的設備是Android Galaxy Tab Pro 10.1,Android 4.4.2。Android應用程序 - 如何寫入Android設備的Documents文件夾?

我已經試過:

String fileName = "example.xml"; 
String myDirectory = "myDirectory"; 

String externalStorage = Environment.getExternalStorageDirectory().getAbsolutePath(); 

File outputFile = new File(externalStorage + File.separator + myDirectory + File.separator + fileName); 

但不會創建任何文件。我也想稍後再將這個文件從文檔文件夾中讀取到may app中。

任何幫助表示讚賞,謝謝!

回答

0

在創建文件之前,您必須創建保存文件的目錄。 請嘗試像這樣: - String fileName =「example.xml」; String myDirectory =「myDirectory」;

String externalStorage = Environment.getExternalStorageDirectory().getAbsolutePath(); 

File outputDirectory = new File(externalStorage + File.separator + myDirectory); 

if(!outputDirectory.exist()){ 
    outputDirectory.mkDir(); 
} 

File outputFile = new File(externalStorage + File.separator + myDirectory + File.separator + fileName); 

outputFile.createFile(); 
4

在Android清單

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

使用此代碼設置權限寫入外部目錄

String fileName = "example.xml"; 
String dirName = "MyDirectory"; 
String contentToWrite = "Your Content Goes Here"; 
File myDir = new File("sdcard", dirName); 

/*if directory doesn't exist, create it*/ 
if(!myDir.exists()) 
    myDir.mkdirs(); 


File myFile = new File(myDir, fileName); 

/*Write to file*/ 
try { 
    FileWriter fileWriter = new FileWriter(myFile); 
    fileWriter.append(contentToWrite); 
    fileWriter.flush(); 
    fileWriter.close(); 
} 
catch(IOException e){ 
    e.printStackTrace(); 
} 
0

請嘗試重新啓動您的設備,然後檢查文件是否存在。如果是這樣,你正在創建它(它看起來像你應該基於你的代碼),但它沒有顯示,直到你的設備上掃描媒體。嘗試實施MediaScannerConnectionClient,以便在創建後顯示變得可見。

public class MainActivity extends Activity implements MediaScannerConnectionClient { 

private MediaScannerConnection msConn; 
private File example; 

... 

@Override 
protected void onCreate(Bundle savedInstanceState) { 

    ... 

    msConn = new MediaScannerConnection(this.getApplicationContext(), this); 

    String dir = Environment.getExternalStorageDirectory() + "/Documents/"; 
    example = new File(dir, "example.xml"); 

    msConn.connect(); 

} 

@Override 
public void onMediaScannerConnected() { 
    msConn.scanFile(example.getAbsolutePath(), null); 
} 

@Override 
public void onScanCompleted(String path, Uri uri) { 
    msConn.disconnect(); 
}  
7

我知道這是晚了,但你可以得到的文件目錄是這樣的:

File dir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS); 
File file = new File(dir, "example.txt"); 

//Write to file 
try (FileWrite fileWrite = new FileWriter(file)) { 
fileWriter.append("Writing to file!"); 
} catch (IOException e) { 
    //Handle exception 
} 
相關問題