欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java讀寫文件,在文件中搜索內(nèi)容,并輸出含有該內(nèi)容的所有行方式

 更新時(shí)間:2020年08月25日 09:32:03   作者:名字是卡的好  
這篇文章主要介紹了Java讀寫文件,在文件中搜索內(nèi)容,并輸出含有該內(nèi)容的所有行方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

1.問題描述

在一個(gè)目錄及子目錄下查找 TXT或Java文件,從中搜索所有“對(duì)象”字樣的行。

在D盤中的所有文件中搜索含有“對(duì)象”的行。

2.解題思路

先找出D盤下所有文件

再對(duì)每個(gè)文件中的每行內(nèi)容進(jìn)行,進(jìn)行查找,若含有“對(duì)象”兩字,輸出該行。

3.程序代碼

import java.io.File;
import java.io.IOException;
import java.util.Scanner;

public class B {
  static int m=1;
  static void search(File a,String x) throws IOException{//在文件a中的每行中查找x
    Scanner scan = new Scanner(a,"gbk");
    int k = 0;
    while(true){  
      if(scan.hasNext()==false) break;
      String s = scan.nextLine();
      k++;
      if(s.contains(x)){
        String ss =m +".文件:"+ a.getPath() + " 第" + k + "行 \n 內(nèi)容:" + s;
        System.out.println(ss);
        m++;
      }
    } 
    Scanner scan1 = new Scanner(a,"utf-8");
    int k1 = 0;
    while(true){  
      if(scan1.hasNext()==false) break;
      String s1 = scan1.nextLine();      
      k1++;
      if(s1.contains(x)){
        String ss1 =m +".文件:"+ a.getPath() + " 第" + k1 + "行 \n 內(nèi)容:" + s1;
        System.out.println(ss1);
        m++;
      }
    } 
  }
  static void f(File a,String s)throws IOException{//在a下所有文件中查找含有s的行
    
    File[] ff = a.listFiles();
    if(ff==null) return;
    for(File it : ff){
      if(it.isFile()){//若a是文件,直接查找
        search(it,s);
      }
      if(it.isDirectory()){//若a是目錄,則對(duì)其目錄下的目錄或文件繼續(xù)查找
        f(it,s);
      }
    }    
  }

  public static void main(String[] args)throws IOException {
    f(new File("d:\\"),"對(duì)象");

  }

}

4.運(yùn)行結(jié)果圖

如圖所示,在d盤下所有文件中共有198行含有“對(duì)象”兩字。

補(bǔ)充知識(shí):java 編寫一個(gè)程序分別用字節(jié)流和字符流拷貝一個(gè)文本文件

我就廢話不多說了,大家還是直接看代碼吧~

package cn; 
import java.io.*; 
public class Test01 {
	public static void main(String[] args) throws Exception{
		// 字節(jié)流拷貝
		// 創(chuàng)建一個(gè)字節(jié)輸入流,用于讀取E盤下的sss.txt文件
		FileInputStream fis=new FileInputStream("E:/sss.txt");
		// 創(chuàng)建一個(gè)文件字節(jié)輸出流,用于將讀取到的數(shù)據(jù)寫入當(dāng)前sss.bak文件中
		FileOutputStream fos=new FileOutputStream("E:/sss.bak");
		byte[] buff=new byte[1024];		// 定義一個(gè)字符數(shù)組作為緩沖區(qū)
		int ch;
		while ((ch=fis.read()) !=-1) {	// 判斷是否讀到文件末尾
			System.out.write(ch);
			fos.write(buff, 0,ch);		// 從第一個(gè)一個(gè)字節(jié)開始,向文件寫入ch個(gè)字符
		}
		fis.close();
		fos.close();
		// 字符流拷貝
		// 創(chuàng)建一個(gè)BufferedReader緩沖對(duì)象
		BufferedReader br=new BufferedReader(new FileReader("E:/aaa.txt"));
		// 創(chuàng)建一個(gè)BufferedWriter緩沖對(duì)象
		BufferedWriter bw=new BufferedWriter(new FileWriter("E:/aaa.bak"));
		String str;
		while ((str=br.readLine()) != null) {	// 每次讀取一行文本,判斷是否到文件末尾
			bw.write(str);
			bw.newLine();	// 寫入一個(gè)換行符,該方法會(huì)根據(jù)不同的操作系統(tǒng)生成相應(yīng)的換行符
		}
		br.close();
		bw.close();	
	}
}

以上這篇Java讀寫文件,在文件中搜索內(nèi)容,并輸出含有該內(nèi)容的所有行方式就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用java8 API遍歷過濾文件目錄及子目錄和隱藏文件示例詳解

    使用java8 API遍歷過濾文件目錄及子目錄和隱藏文件示例詳解

    這篇文章主要介紹了使用java8API遍歷過濾文件目錄及子目錄及隱藏文件示例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 解決Mac?m1?電腦?idea?卡頓的問題

    解決Mac?m1?電腦?idea?卡頓的問題

    這篇文章主要介紹了Mac?m1?電腦?idea?卡頓的問題解決,文中給大家補(bǔ)充介紹了IDEA卡頓問題處理方法,需要的朋友可以參考下
    2023-03-03
  • 使用SpringDataJpa創(chuàng)建中間表

    使用SpringDataJpa創(chuàng)建中間表

    這篇文章主要介紹了使用SpringDataJpa創(chuàng)建中間表,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • java實(shí)現(xiàn)兩臺(tái)服務(wù)器間文件復(fù)制的方法

    java實(shí)現(xiàn)兩臺(tái)服務(wù)器間文件復(fù)制的方法

    這篇文章主要介紹了java實(shí)現(xiàn)兩臺(tái)服務(wù)器間文件復(fù)制的方法,是對(duì)單臺(tái)服務(wù)器上文件復(fù)制功能的升級(jí)與改進(jìn),具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-01-01
  • 基于JWT的spring boot權(quán)限驗(yàn)證技術(shù)實(shí)現(xiàn)教程

    基于JWT的spring boot權(quán)限驗(yàn)證技術(shù)實(shí)現(xiàn)教程

    這篇文章主要給大家介紹了關(guān)于基于JWT的spring boot權(quán)限驗(yàn)證技術(shù)實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • SpringMVC實(shí)現(xiàn)獲取請(qǐng)求參數(shù)方法詳解

    SpringMVC實(shí)現(xiàn)獲取請(qǐng)求參數(shù)方法詳解

    Spring MVC 是 Spring 提供的一個(gè)基于 MVC 設(shè)計(jì)模式的輕量級(jí) Web 開發(fā)框架,本質(zhì)上相當(dāng)于 Servlet,Spring MVC 角色劃分清晰,分工明細(xì),這篇文章主要介紹了SpringMVC實(shí)現(xiàn)獲取請(qǐng)求參數(shù)方法
    2022-09-09
  • mybatis中的setting配置詳解

    mybatis中的setting配置詳解

    這篇文章主要給大家介紹了關(guān)于mybatis中setting配置的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2017-06-06
  • 淺析如何在Java應(yīng)用中優(yōu)雅的發(fā)送短信

    淺析如何在Java應(yīng)用中優(yōu)雅的發(fā)送短信

    很多業(yè)務(wù)場(chǎng)景里,我們都需要發(fā)送短信,比如登陸驗(yàn)證碼、告警、營(yíng)銷通知、節(jié)日祝福等等,這篇文章,我們聊聊 Java 應(yīng)用中如何優(yōu)雅的發(fā)送短信,文中有詳細(xì)的代碼示例供大家參考,需要的朋友可以參考下
    2023-11-11
  • SpringCloud Netfilx Ribbon負(fù)載均衡工具使用方法介紹

    SpringCloud Netfilx Ribbon負(fù)載均衡工具使用方法介紹

    Ribbon是Netflix的組件之一,負(fù)責(zé)注冊(cè)中心的負(fù)載均衡,有助于控制HTTP和TCP客戶端行為。Spring Cloud Netflix Ribbon一般配合Ribbon進(jìn)行使用,利用在Eureka中讀取的服務(wù)信息,在調(diào)用服務(wù)節(jié)點(diǎn)時(shí)合理進(jìn)行負(fù)載
    2022-12-12
  • mybatis if test條件判斷語句中的判斷問題分析

    mybatis if test條件判斷語句中的判斷問題分析

    這篇文章主要介紹了mybatis if test條件判斷語句中的判斷問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03

最新評(píng)論