zoukankan      html  css  js  c++  java
  • java 读写 txt 文件

    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(" ");  
                    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流///////////////////

    /////////////////////////////////////////////////////

    1. package com.stone.demo;  
    2.   
    3. import java.io.BufferedReader;  
    4. import java.io.BufferedWriter;  
    5. import java.io.File;  
    6. import java.io.FileInputStream;  
    7. import java.io.FileNotFoundException;  
    8. import java.io.FileWriter;  
    9. import java.io.IOException;  
    10. import java.io.InputStreamReader;  
    11. import java.util.Scanner;  
    12.   
    13. public class ReadAndWriteTxtByFile {  
    14.     /** 
    15.      * 功能:Java读取txt文件的内容 步骤: 
    16.      * 1:先获得文件句柄  
    17.      * 2:获得文件句柄当做是输入一个字节码流,需要对这个输入流进行读取 
    18.      * 3:读取到输入流后,需要读取生成字节流 
    19.      *  4:一行一行的输出。readline()。 备注:需要考虑的是异常情况 
    20.      * @param filePath 
    21.      */  
    22.     public static void readTxtFile(String filePath) {  
    23.         try {  
    24.             String encoding = "GBK";  
    25.             File file = new File(filePath);  
    26.             if (file.isFile() && file.exists()) { // 判断文件是否存在  
    27.                 InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);// 考虑到编码格式  
    28.                 BufferedReader bufferedReader = new BufferedReader(read);  
    29.                 String lineTxt = null;  
    30.                 while ((lineTxt = bufferedReader.readLine()) != null) {  
    31.                     System.out.println(lineTxt);  
    32.                 }  
    33.                 read.close();  
    34.             }  
    35.         } catch (Exception e) {  
    36.             System.out.println("读取文件内容出错");  
    37.             e.printStackTrace();  
    38.         }  
    39.     }  
    40.       
    41.     private static void writeTxtFile(String filepath){  
    42.         File file=new File(filepath);  
    43.         BufferedWriter writer = null;  
    44.         try {  
    45.             if(file.isFile()&&!file.exists()){  
    46.                 System.out.println("找不到指定的文件");  
    47.                 file.createNewFile();// 不存在则创建  
    48.             }  
    49.             else{  
    50.                 //writer = new BufferedWriter(new FileWriter(file,true)); //这里加入true 可以不覆盖原有TXT文件内容 续写  
    51.                 writer = new BufferedWriter(new FileWriter(file));  
    52.                 writer.write("hello");  
    53.                 writer.write(" ");  
    54.                 writer.write("hello");  
    55.             }  
    56.               
    57.         } catch (Exception e) {  
    58.             e.printStackTrace();  
    59.         } finally {  
    60.             if (writer != null) {  
    61.                 try {  
    62.                     writer.flush();  
    63.                     writer.close();  
    64.                 } catch (IOException e) {  
    65.                     e.printStackTrace();  
    66.                 }  
    67.             }  
    68.         }  
    69.     }  
    70.       
    71.     public static void main(String argv[]) {  
    72.         String filepath=System.getProperty("user.dir")+"/src/com/stone/demo/txtfile.txt";  
    73.         writeTxtFile(filepath);  
    74.         System.out.println("===================");  
    75.         readTxtFile(filepath);  
    76.     }  

    //注:摘自http://blog.csdn.net/giserstone/article/details/40922189

  • 相关阅读:
    idea打开了多个项目,多idea窗口相互切换的快捷键
    idea中的springboot项目如何不用重新编译,自动热部署
    线程基本使用--Thread内部方法调用start
    java如何快速创建List
    抓包工具Charles使用
    postman添加Cookie
    Ubuntu使用记录
    Intellij idea使用总结
    navicat 生成注册码( 仅供学习使用 )
    前端常用技术总结
  • 原文地址:https://www.cnblogs.com/shuzhenzhumo/p/6769996.html
Copyright © 2011-2022 走看看