java读取txt文件内容。可以作如下理解:
1、首先获得一个文件句柄。File file = new File(); file即为文件句柄。两人之间连通电话网络了。接下来可以开始打电话了。
2、通过这条线路读取甲方的信息:new FileInputStream(file) 目前这个信息已经读进来内存当中了。接下来需要解读成乙方可以理解的东西
3、既然你使用了FileInputStream()。那么对应的需要使用InputStreamReader()这个方法进行解读刚才装进来内存当中的数据
4、解读完成后要输出呀。那当然要转换成IO可以识别的数据呀。那就需要调用字节码读取的方法BufferedReader()。同时使用bufferedReader()的readline()方法读取txt文件中的每一行数据哈。
方法一:
简单的使用Scanner和PrintWriter
package com.stone.demo; import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.Scanner; public class ReadAndWriteTxtByScanner { private static void readTxtFile(String filepath){ try { Scanner in=new Scanner(new File(filepath)); while(in.hasNext()){ String str=in.nextLine(); System.out.println(str); } } catch (FileNotFoundException e) { e.printStackTrace(); } } private static void writeTxtFile(String filepath){ try { @SuppressWarnings("resource") String relativepath=System.getProperty("user.dir")+"/src/com/stone/demo/writefile.txt"; PrintWriter out=new PrintWriter(relativepath); out.write("12312"); out.write("\n"); out.write("12312"); out.flush(); out.close(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { String filepath=System.getProperty("user.dir")+"/src/com/stone/demo/writefile.txt"; writeTxtFile(filepath); System.out.println("=================="); readTxtFile(filepath); } }
方法二:使用IO流
package com.stone.demo; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; public class ReadAndWriteTxtByFile { /** * 功能:Java读取txt文件的内容 步骤: * 1:先获得文件句柄 * 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取 * 3:读取到输入流后,需要读取生成字节流 * 4:一行一行的输出。readline()。 备注:需要考虑的是异常情况 * @param filePath */ 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; while ((lineTxt = bufferedReader.readLine()) != null) { System.out.println(lineTxt); } read.close(); } } catch (Exception e) { System.out.println("读取文件内容出错"); e.printStackTrace(); } } private static void writeTxtFile(String filepath){ File file=new File(filepath); BufferedWriter writer = null; try { if(file.isFile()&&!file.exists()){ System.out.println("找不到指定的文件"); file.createNewFile();// 不存在则创建 } else{ //writer = new BufferedWriter(new FileWriter(file,true)); //这里加入true 可以不覆盖原有TXT文件内容 续写 writer = new BufferedWriter(new FileWriter(file)); writer.write("hello"); writer.write("\n"); writer.write("hello"); } } catch (Exception e) { e.printStackTrace(); } finally { if (writer != null) { try { writer.flush(); writer.close(); } catch (IOException e) { e.printStackTrace(); } } } } public static void main(String argv[]) { String filepath=System.getProperty("user.dir")+"/src/com/stone/demo/txtfile.txt"; writeTxtFile(filepath); System.out.println("==================="); readTxtFile(filepath); } }