一、獲取外部存儲目錄
在Android上,外部存儲是指可移動存儲介質,例如SD卡。我們可以通過使用getExternalFilesDir()方法獲取外部存儲路徑。這個方法允許我們將數據寫入到外部存儲設備上。
首先,在Manifest文件中添加以下許可權:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
然後在代碼中,使用以下代碼獲取外部存儲路徑:
File externalFileDir = getExternalFilesDir(null);
getExternalFilesDir()方法有一個參數是存儲目錄的類型,例如圖片,音頻等等。如果你想要保存圖片,可以使用以下代碼獲取存儲目錄的路徑:
File externalImageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
在這個存儲目錄下,我們就可以創建文件並寫入數據了。
二、創建文件並寫入數據
下面的例子展示了如何創建一個文件並向其寫入數據:
File file = new File(externalFileDir, "example.txt");
String data = "Hello, world!";
try {
FileOutputStream outputStream = new FileOutputStream(file);
outputStream.write(data.getBytes());
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
我們首先創建了一個File對象,指定了文件的名稱。然後,我們使用FileOutputStream類來寫入數據。最後,我們關閉輸出流。
三、讀取文件
下面的例子展示了如何讀取我們寫入的數據:
File file = new File(externalFileDir, "example.txt");
String data = "";
try {
FileInputStream inputStream = new FileInputStream(file);
int content;
while ((content = inputStream.read()) != -1) {
data += (char) content;
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
Log.d("TAG", "Data: " + data);
我們首先創建了一個File對象,指向我們之前創建的文件。然後,我們使用FileInputStream類來從文件中讀取數據。
在while循環中,我們讀取文件的內容並將其存儲在data變數中。最後,我們在Logcat窗口中列印讀取到的數據。
四、總結
本文中介紹了如何在Android上使用getExternalFilesDir()方法獲取外部存儲路徑,並如何將數據寫入到外部存儲設備中。通過這些示例,你可以了解如何創建和讀取文件。
完整的示例代碼如下:
File externalFileDir = getExternalFilesDir(null);
// File externalImageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File file = new File(externalFileDir, "example.txt");
String data = "Hello, world!";
try {
FileOutputStream outputStream = new FileOutputStream(file);
outputStream.write(data.getBytes());
outputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
file = new File(externalFileDir, "example.txt");
data = "";
try {
FileInputStream inputStream = new FileInputStream(file);
int content;
while ((content = inputStream.read()) != -1) {
data += (char) content;
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
Log.d("TAG", "Data: " + data);
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/295996.html