Tôi có tệp văn bản trong thư mục nội dung mà tôi cần chuyển thành đối tượng Tệp (không phải vào InputStream). Khi tôi thử điều này, tôi có ngoại lệ "không có tệp như vậy":Android: làm cách nào để tạo đối tượng Tệp từ tệp nội dung?
String path = "file:///android_asset/datafile.txt";
URL url = new URL(path);
File file = new File(url.toURI()); // Get exception here
Tôi có thể sửa đổi điều này để làm việc này không?
Bằng cách này, tôi loại đã cố gắng để "mã bằng ví dụ" nhìn vào đoạn mã sau ở nơi khác trong dự án của tôi tham chiếu đến một tập tin HTML trong thư mục nội dung
public static Dialog doDialog(final Context context) {
WebView wv = new WebView(context);
wv.loadUrl("file:///android_asset/help/index.html");
tôi làm thừa nhận rằng tôi không hoàn toàn hiểu được cơ chế trên vì vậy có thể những gì tôi đang cố gắng làm không thể hoạt động.
Thx!
Tại sao bạn muốn đọc nó vào một đối tượng File? Tôi tin rằng bạn cần lấy dữ liệu từ nội dung dưới dạng InputStream và viết nó ra dưới dạng outputStream trỏ đến một vị trí thực. Sau đó, bạn có thể mở nó như là một đối tượng File. http://stackoverflow.com/questions/4447477/android-how-to-copy-files-in-assets-to-sdcard – Gophermofur
Tôi đang cố gắng tránh tạo bản sao của tệp nội dung, nhưng tôi sẽ làm điều đó nếu tất cả khác thất bại. Lý do tôi cần một tập tin là nó được sử dụng như một đối số trong một ctor có mã tôi không có quyền truy cập vào, và đó là ctor duy nhất tồn tại cho lớp đó. –
Ah, điều đó có ý nghĩa. Có thể: Tạo bản sao vào SDCARD, chuyển nó vào \ tới hàm tạo và xóa nó sau khi bạn đã hoàn thành? Nếu tập tin là như nhau và bạn luôn luôn lưu nó vào cùng một vị trí trên SDCARD bạn chỉ muốn thực hiện 1 bản sao (nó sẽ chỉ ghi đè lên phiên bản trước đó). – Gophermofur