写:
/**
* 向sdcard写入内容
* @param fileName 文件的名称
* @param content 文件的内容
* @return
*/
public boolean saveContentToSdcard(String fileName,String content)
{
boolean flag = false;
FileOutputStream fileOutputStream = null;
//获取sdcard所在的路径
File file = new File(Environment.getExternalStorageDirectory(),fileName);
//判断sdcard卡是否可用
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))
{
try {
fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(content.getBytes());
System.out.println("HERER");
flag = true;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
if(fileOutputStream!=null)
try {
fileOutputStream.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}else
{
System.out.println("CAN NOT WRITE");
}
return flag;
}读:
/**
* 从sdcard中读取txt文件内容
* @param fileName
* @return
*/
public String readContentFromSdcard(String fileName)
{
String content = "";
FileInputStream fileInputStream = null;
//缓存的流,和磁盘无关,不需要关闭
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
try {
File file = new File(Environment.getExternalStorageDirectory(),fileName);
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
&&file.isFile()
&&file.exists())
{
fileInputStream = new FileInputStream(file);
int len = 0;
byte[] data = new byte[1024];
while((len = fileInputStream.read(data))!=-1)
{
byteArrayOutputStream.write(data,0,len);
}
content = new String(byteArrayOutputStream.toByteArray());
}
} catch (Exception e) {
e.printStackTrace();
}finally
{
if(fileInputStream!=null)
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return content;
}
/**
* 从sdcard中读取txt文件内容
* @param fileName
* @return
*/
public String readContentFromSdcard2(String fileName)
{
String content = "";
BufferedReader bufferedReader = null;
try {
File file = new File(Environment.getExternalStorageDirectory(),fileName);
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
&&file.isFile()
&&file.exists())
{
bufferedReader = new BufferedReader(new FileReader(file));
try {
String s = null;
while((s = bufferedReader.readLine()) != null){//使用readLine方法,一次读一行
content = content + "\n" +s;
}
bufferedReader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}finally
{
if(bufferedReader!=null)
try {
bufferedReader.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return content;
}
/**
* 从sdcard中读取txt文件内容
* @param fileName
* @return
*/
public String readContentFromSdcard3(String fileName)
{
String content = "";
FileInputStream fileInputStream = null;
try {
File file = new File(Environment.getExternalStorageDirectory(),fileName);
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())
&&file.isFile()
&&file.exists())
{
fileInputStream = new FileInputStream(file);
int len = fileInputStream.available();
byte[] buffer = new byte[len];
fileInputStream.read(buffer);
content = new String(buffer);
}
} catch (Exception e) {
e.printStackTrace();
}finally
{
if(fileInputStream!=null)
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
return content;
}
本文提供了三种不同的方法来实现从Android设备的SDCard中读取文本文件内容,并介绍了一种向SDCard写入内容的方法。文章详细展示了如何利用Java进行文件操作,包括使用FileInputStream与FileOutputStream进行读写,利用BufferedReader按行读取文件,以及直接通过FileInputStream读取全部内容。
1383

被折叠的 条评论
为什么被折叠?



