Tệp được lưu trữ trên thiết bị ở một vị trí cụ thể, phụ thuộc vào ứng dụng, đó là những gì tôi giả sử openFileInput
thêm ở đầu tên tệp. Kết quả cuối cùng (vị trí + tên file) được xây dựng như sau:
/data/data/<application-package>/files/<file-name>
Cũng lưu ý rằng các tài liệu nói rằng các tham số openFileInput
cannot contain path separators.
Để tránh khó mã hóa đường dẫn vị trí, nguyên tắc có thể khác với thiết bị, bạn có thể lấy đối tượng File
trỏ đến thư mục lưu trữ bằng cách gọi getFilesDir
và sử dụng nó để đọc bất kỳ tệp nào bạn muốn đến. Ví dụ:
File filesDir = getFilesDir();
Scanner input = new Scanner(new File(filesDir, filename));
Lưu ý rằng việc xây dựng một Scanner
bằng cách thông qua một String
như một tham số sẽ dẫn đến việc máy quét làm việc về nội dung của chuỗi, tức là giải thích nó như là nội dung thực tế để quét thay vì như tên của một tệp để mở.
Nguồn
2011-10-12 14:47:45
cảm ơn !! tôi đã sử dụng hàm tạo sai lúc đầu: P .. sau đó tôi đã cố gắng sử dụng Scanner sc = new Scanner (tệp mới (tên tệp)); nhưng không hoạt động ... Tệp tệpDir = getFilesDir(); Đầu vào máy quét = Máy quét mới (tệp mới (filesDir, tên tệp)); hoạt động tuyệt vời này: D – zSt