关于文件读取,需要用到I/O流,对于读取SD卡中的.txt文件时:
1:先获得文件(File)
2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取(InputStreamReader)
3:读取到输入流后,需要读取生成字节流
4:一行一行的输出。readline()。 备注:需要考虑的是异常情况
StringBuffer:
public static void readTxtFile(String filePath) {
try {
String encoding = "GBK";
File file = new File(filePath);
if (file.isFile() && file.exists()) { // 判断文件是否存在
InputStreamReader read = new InputStreamReader(
new FileInputStream(file), encoding);// 考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
StringBuffer sBuffer = new StringBuffer("");
while ((lineTxt = bufferedReader.readLine()) != null) {
//System.out.println(lineTxt);
sBuffer.append(lineTxt);
sBuffer.append("\n");
}
list.add(sBuffer.toString());
read.close();
} else {
System.out.println("找不到指定的文件");
}
} catch (Exception e) {
System.out.println("读取文件内容出错");
e.printStackTrace();
}
System.out.println("listlist--->>>" + list);
}
当然这个是简单的实现读取本地.txt的文件,看到网上别人写的关于读取和写入 的两个类:
<pre name="code" class="java">// 写文件
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
public class TxtFileWrite {
public static void main(String[] args) throws IOException {
File file = new File("test.txt");
PrintWriter pw = new PrintWriter(new BufferedWriter(
new FileWriter(file)));
pw.print("fighting, ");
pw.print("china");
pw.close();
}
}
<pre name="code" class="java">// 读文件
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class TxtFileRead {
public static void main(String[] args) {
try {
File file = new File("test.txt");
FileReader filereader = new FileReader(file);
int ch;
while ((ch = filereader.read()) != -1) {
System.out.print((char) ch);
}
} catch (FileNotFoundException e) {
System.out.println(e);
} catch (IOException e) {
System.out.println(e);
}
}
}