最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

1.問題描述

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

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

2.解題思路

先找出D盤下所有文件

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

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是目錄,則對其目錄下的目錄或文件繼續(xù)查找
        f(it,s);
      }
    }    
  }

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

  }

}

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

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

補(bǔ)充知識: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緩沖對象
		BufferedReader br=new BufferedReader(new FileReader("E:/aaa.txt"));
		// 創(chuàng)建一個(gè)BufferedWriter緩沖對象
		BufferedWriter bw=new BufferedWriter(new FileWriter("E:/aaa.bak"));
		String str;
		while ((str=br.readLine()) != null) {	// 每次讀取一行文本,判斷是否到文件末尾
			bw.write(str);
			bw.newLine();	// 寫入一個(gè)換行符,該方法會根據(jù)不同的操作系統(tǒng)生成相應(yīng)的換行符
		}
		br.close();
		bw.close();	
	}
}

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

相關(guān)文章

  • java對象轉(zhuǎn)換String類型的三種方法

    java對象轉(zhuǎn)換String類型的三種方法

    在很多情況下我們都需要將一個(gè)對象轉(zhuǎn)換為String類型。一般來說有三種方法可以實(shí)現(xiàn):Object.toString()、(String)Object、String.valueOf(Object)。下面對這三種方法一一分析
    2013-11-11
  • druid配置數(shù)據(jù)庫連接使用密文密碼方式

    druid配置數(shù)據(jù)庫連接使用密文密碼方式

    這篇文章主要介紹了druid配置數(shù)據(jù)庫連接使用密文密碼方式,具有很好的參考價(jià)值,希望對大家有所幫助,
    2023-12-12
  • springcloud gateway 映射失效的解決方案

    springcloud gateway 映射失效的解決方案

    這篇文章主要介紹了springcloud gateway 映射失效的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java導(dǎo)出大批量(百萬以上)數(shù)據(jù)的excel文件

    java導(dǎo)出大批量(百萬以上)數(shù)據(jù)的excel文件

    這篇文章主要為大家詳細(xì) 介紹了java導(dǎo)出大批量即百萬以上數(shù)據(jù)的excel文件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • 簡單了解Spring循環(huán)依賴解決過程

    簡單了解Spring循環(huán)依賴解決過程

    這篇文章主要介紹了簡單了解Spring循環(huán)依賴解決過程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • java-synchronized 嵌套使用代碼詳解

    java-synchronized 嵌套使用代碼詳解

    本文以synchronized 的同步造成了死鎖為例,介紹了java-synchronized 嵌套使用代碼詳解,同時(shí)對鎖和死鎖的概念進(jìn)行了說明,需要的朋友可以了解下。
    2017-09-09
  • 深入了解SpringBoot中@ControllerAdvice的介紹及三種用法

    深入了解SpringBoot中@ControllerAdvice的介紹及三種用法

    這篇文章主要為大家詳細(xì)介紹了SpringBoot中@ControllerAdvice的介紹及三種用法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-02-02
  • Java 線程池_動力節(jié)點(diǎn)Java學(xué)院整理

    Java 線程池_動力節(jié)點(diǎn)Java學(xué)院整理

    系統(tǒng)啟動一個(gè)新線程的成本是比較高的,因?yàn)樗婕暗脚c操作系統(tǒng)的交互。在這種情況下,使用線程池可以很好的提供性能,尤其是當(dāng)程序中需要創(chuàng)建大量生存期很短暫的線程時(shí),更應(yīng)該考慮使用線程池
    2017-05-05
  • Java 并發(fā)編程學(xué)習(xí)筆記之Synchronized底層優(yōu)化

    Java 并發(fā)編程學(xué)習(xí)筆記之Synchronized底層優(yōu)化

    這篇文章主要介紹了Java 并發(fā)編程學(xué)習(xí)筆記之Synchronized底層優(yōu)化的相關(guān)資料,主要包含了重量級鎖,輕量級鎖,偏向鎖和其他優(yōu)化等方面,有需要的小伙伴可以參考下
    2016-05-05
  • Springboot+redis+Interceptor+自定義annotation實(shí)現(xiàn)接口自動冪等

    Springboot+redis+Interceptor+自定義annotation實(shí)現(xiàn)接口自動冪等

    本篇文章給大家介紹了使用springboot和攔截器、redis來優(yōu)雅的實(shí)現(xiàn)接口冪等,對于冪等在實(shí)際的開發(fā)過程中是十分重要的,因?yàn)橐粋€(gè)接口可能會被無數(shù)的客戶端調(diào)用,如何保證其不影響后臺的業(yè)務(wù)處理,如何保證其只影響數(shù)據(jù)一次是非常重要的,感興趣的朋友跟隨小編一起看看吧
    2019-07-07

最新評論

巴中市| 汪清县| 郁南县| 兴国县| 六盘水市| 巴南区| 红桥区| 锡林郭勒盟| 兴化市| 金湖县| 定襄县| 河西区| 鲁甸县| 合阳县| 玛纳斯县| 霍山县| 博客| 湟中县| 禹州市| 磐安县| 芷江| 芦山县| 奉化市| 道孚县| 广昌县| 湟中县| 乌兰察布市| 电白县| 东光县| 孟津县| 吴旗县| 内乡县| 仁布县| 那坡县| 那曲县| 响水县| 邵武市| 新宁县| 沙坪坝区| 游戏| 丽水市|