Java讀寫檔案,在檔案中搜索內容,並輸出含有該內容的所有行方式
阿新 • • 發佈:2020-08-25
1.問題描述
在一個目錄及子目錄下查詢 TXT或Java檔案,從中搜索所有“物件”字樣的行。
在D盤中的所有檔案中搜索含有“物件”的行。
2.解題思路
先找出D盤下所有檔案
再對每個檔案中的每行內容進行,進行查詢,若含有“物件”兩字,輸出該行。
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 內容:" + 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 內容:" + 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是目錄,則對其目錄下的目錄或檔案繼續查詢 f(it,s); } } } public static void main(String[] args)throws IOException { f(new File("d:\\"),"物件"); } }
4.執行結果圖
如圖所示,在d盤下所有檔案中共有198行含有“物件”兩字。
補充知識:java 編寫一個程式分別用位元組流和字元流拷貝一個文字檔案
我就廢話不多說了,大家還是直接看程式碼吧~
package cn; import java.io.*; public class Test01 { public static void main(String[] args) throws Exception{ // 位元組流拷貝 // 建立一個位元組輸入流,用於讀取E盤下的sss.txt檔案 FileInputStream fis=new FileInputStream("E:/sss.txt"); // 建立一個檔案位元組輸出流,用於將讀取到的資料寫入當前sss.bak檔案中 FileOutputStream fos=new FileOutputStream("E:/sss.bak"); byte[] buff=new byte[1024]; // 定義一個字元陣列作為緩衝區 int ch; while ((ch=fis.read()) !=-1) { // 判斷是否讀到檔案末尾 System.out.write(ch); fos.write(buff,ch); // 從第一個一個位元組開始,向檔案寫入ch個字元 } fis.close(); fos.close(); // 字元流拷貝 // 建立一個BufferedReader緩衝物件 BufferedReader br=new BufferedReader(new FileReader("E:/aaa.txt")); // 建立一個BufferedWriter緩衝物件 BufferedWriter bw=new BufferedWriter(new FileWriter("E:/aaa.bak")); String str; while ((str=br.readLine()) != null) { // 每次讀取一行文字,判斷是否到檔案末尾 bw.write(str); bw.newLine(); // 寫入一個換行符,該方法會根據不同的作業系統生成相應的換行符 } br.close(); bw.close(); } }
以上這篇Java讀寫檔案,並輸出含有該內容的所有行方式就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。