java创建TXT文件并进行读、写、修改操作

 

import java.io.*;


/**
 * 
 * 功能描述:创建TXT文件并进行读、写、修改操作
 *      
 * 
@author <a href="mailto:zhanghhui@126.com">KenZhang</a>
 * 
@version 1.0 
 * Creation date: 2007-12-18 - 下午06:48:45
 
*/

public class ReadWriteFile {
    
public static BufferedReader bufread;
    
//指定文件路径和名称
    private static String path = "D:/suncity.txt";
    
private static  File filename = new File(path);
    
private static String readStr ="";


    
/**
     * 创建文本文件.
     * 
@throws IOException 
     * 
     
*/

    
public static void creatTxtFile() throws IOException{
        
if (!filename.exists()) {
            filename.createNewFile();
            System.err.println(filename 
+ "已创建!");
        }

    }

    
    
/**
     * 读取文本文件.
     * 
     
*/

    
public static String readTxtFile(){
        String read;
        FileReader fileread;
        
try {
            fileread 
= new FileReader(filename);
            bufread 
= new BufferedReader(fileread);
            
try {
                
while ((read = bufread.readLine()) != null{
                    readStr 
= readStr + read+ "\r\n";
                }

            }
 catch (IOException e) {
                
// TODO Auto-generated catch block
                e.printStackTrace();
            }

        }
 catch (FileNotFoundException e) {
            
// TODO Auto-generated catch block
            e.printStackTrace();
        }


        System.out.println(
"文件内容是:"+ "\r\n" + readStr);
        
return readStr;
    }

    
    
/**
     * 写文件.
     * 
     
*/

    
public static void writeTxtFile(String newStr) throws IOException{
        
//先读取原有文件内容,然后进行写入操作
        String filein = newStr + "\r\n" + readStr + "\r\n";
        RandomAccessFile mm 
= null;
        
try {
            mm 
= new RandomAccessFile(filename, "rw");
            mm.writeBytes(filein);
        }
 catch (IOException e1) {
            
// TODO 自动生成 catch 块
            e1.printStackTrace();
        }
 finally {
            
if (mm != null{
                
try {
                    mm.close();
                }
 catch (IOException e2) {
                    
// TODO 自动生成 catch 块
                    e2.printStackTrace();
                }

            }

        }

    }

    
    
/**
     * 将文件中指定内容的第一行替换为其它内容.
     * 
     * 
@param oldStr
     *            查找内容
     * 
@param replaceStr
     *            替换内容
     
*/

    
public static void replaceTxtByStr(String oldStr,String replaceStr) {
        String temp 
= "";
        
try {
            File file 
= new File(path);
            FileInputStream fis 
= new FileInputStream(file);
            InputStreamReader isr 
= new InputStreamReader(fis);
            BufferedReader br 
= new BufferedReader(isr);
            StringBuffer buf 
= new StringBuffer();

            
// 保存该行前面的内容
            for (int j = 1; (temp = br.readLine()) != null
                    
&& !temp.equals(oldStr); j++{
                buf 
= buf.append(temp);
                buf 
= buf.append(System.getProperty("line.separator"));
            }


            
// 将内容插入
            buf = buf.append(replaceStr);

            
// 保存该行后面的内容
            while ((temp = br.readLine()) != null{
                buf 
= buf.append(System.getProperty("line.separator"));
                buf 
= buf.append(temp);
            }


            br.close();
            FileOutputStream fos 
= new FileOutputStream(file);
            PrintWriter pw 
= new PrintWriter(fos);
            pw.write(buf.toString().toCharArray());
            pw.flush();
            pw.close();
        }
 catch (IOException e) {
            e.printStackTrace();
        }

    }

    
/**
     * main方法测试
     * 
@param s
     * 
@throws IOException
     
*/

    
public static void main(String[] s) throws IOException {
        ReadWriteFile.creatTxtFile();
        ReadWriteFile.readTxtFile();
        ReadWriteFile.writeTxtFile(
"20080808:12:13");
//        ReadWriteFile.replaceTxtByStr("ken", "zhang");
    }

}

 

 

修改单个文件字符串

     String s="";
            try{
                   FileInputStream fis=new FileInputStream("/home/liu_yin/Android/apktool1.5.2/javatest");//从d:\\1\\3.txt");读出内容到s
                   byte[]b=new byte[1024];
                  
                   while(true){
                       int i=fis.read(b);
                       if(i==-1)break;
                       s=s+new String(b,0,i);
                   }
                   fis.close();
                }catch(Exception e){
                    e.printStackTrace();
                }
                s=s.replaceAll("LogUtil", "//LogUtil");//,进行替换我开始以为是 换行呢,不会还百度了。要换行"\r\n"
                
                try{
                    FileOutputStream fos=new FileOutputStream("/home/liu_yin/Android/apktool1.5.2/javatest",false);//true原有续写,false是追加。如果源文件不存在就新建了
                    fos.write(s.getBytes());
                    fos.close();
                }catch(Exception e){
                    e.printStackTrace();
                }
       

 

 

遍历文件夹下的所有文件

 

 static void getFiles(String filePath){
  File root = new File(filePath);
    File[] files = root.listFiles();
    for(File file:files){    
     if(file.isDirectory()){
      /*
       * 递归调用
       */
      getFiles(file.getAbsolutePath());
      filelist.add(file.getAbsolutePath());
      System.out.println("显示"+filePath+"下所有子目录及其文件"+file.getAbsolutePath());
     }else{
      System.out.println("显示"+filePath+"下所有子目录"+file.getAbsolutePath());
     }    
    }
 }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 



转载于:https://www.cnblogs.com/CaptainLin/p/3578175.html

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值