---------------------------------------------------------------------------字节流--------------------------------------------------------------------------------
package filetest;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;
public class StringTimes {
static Scanner scan = new Scanner(System.in);
public static int getKeyStringCount(String str,String key){ //获取字符串key在字符串str中出现的次数
int count = 0 ;
int index = 0;
while((index=str.indexOf(key,index))!=-1) {
//从index下标开始key存在于str作为控制循环的条件,
//indexOf(key,index) 表示从字符串的第index下标开始字符串key第一次出现的位置
index = index + key.length();
count++;
}
return count;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("C:\\a.txt");
FileInputStream fis = null ;//定义字节流
try {
fis = new FileInputStream(file);
int len = 0;
String str = null;
byte[] by = new byte[1024];
//获取文件中的字符串,并将其存入by中
while((len=fis.read(by))!=-1) {
str = new String(by,0,len);
}
System.out.println("请输入你要查询的字符串");
String key = scan.nextLine();
int count = getKeyStringCount(str, key);
System.out.println(count);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
try {
if( fis!=null )
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
--------------------------------------------------------------------------------字符流-----------------------------------------------------------------------------
package filetest;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Scanner;
public class StringTimes {
static Scanner scan = new Scanner(System.in);
public static int getKeyStringCount(String str,String key){
int count = 0 ;
int index = 0;
while((index=str.indexOf(key,index))!=-1) {
index = index + key.length();
count++;
}
return count;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("C:\\a.txt");
FileInputStream fis = null ;
try {
fis = new FileInputStream(file);
int len = 0;
String str = null;
byte[] by = new byte[1024];
while((len=fis.read(by))!=-1) {
str = new String(by,0,len);
}
System.out.println("请输入你要查询的值");
String key = scan.nextLine();
int count = getKeyStringCount(str, key);
System.out.println(count);
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}finally {
try {
if( fis!=null )
fis.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}