Ⅰ java 文件過濾器怎麼實現。
import java.io.File;
import java.io.FilenameFilter;
/**
* 文件過濾器的簡單實現
*
* @author ajaxfan
* @date 2010-04-17
*/
public class FileNameFilterDemo {
public static void main(String[] args) {
list("d:/");
}
/**
* 列出特定路徑下的txt文件
*
* @param directoryName
* 路徑名
*/
private static void list(String directoryName) {
File dir = new File(directoryName);
// 確定該路徑指向一個目錄
if (dir.exists() && dir.isDirectory()) {
// 列出所有結尾為txt的文件
File[] files = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith("txt");
}
});
System.out.println(java.util.Arrays.toString(files));
}
}
}
Ⅱ 如何用java代碼對同一個txt文本逐行讀寫並過濾掉不要的信息。
你用readline讀出來之後就是一行一個字元串了
然後用indexof("張三"),大於-1就是你要的數據
Ⅲ 在java中,怎樣過濾兩個文本文件的相同數據,把相同的顯示出來,急啊
public class TxtCompare {
private static byte[] b;
public static void main(String[] args) throws Exception{
File f1=new File(文件路徑);
File f2=new File(文件路徑);
int max=2048;
StringBuffer sb1=new StringBuffer();
StringBuffer sb2=new StringBuffer();
FileInputStream fis=new FileInputStream(f1);
InputStreamReader isr=new InputStreamReader(fis);
if(isr.ready()){
char[] t=new char[fis.available()];
isr.read(t);
sb1.append(t);
}
fis.close();
isr.close();
fis=new FileInputStream(f2);
isr=new InputStreamReader(fis);
if(isr.ready()){
char[] t=new char[fis.available()];
isr.read(t);
sb2.append(t);
}
fis.close();
isr.close();
int len= sb1.length()>=sb2.length()?sb2.length():sb1.length();
for(int i=0;i<len;i++){
if(sb1.charAt(i)!=sb2.charAt(i)) System.out.print(sb1.charAt(i)+"::"+sb2.charAt(i));
}
System.out.print(sb1.length()>sb2.length()?sb1.substring(sb2.length()):sb2.substring(sb1.length()));
}
}
比較每個字元是否相同的類
Ⅳ java中關於過濾文件的問題
importjava.io.*;
importjava.util.Arrays;
importjava.util.List;
{
privatefinalList<String>suffixes=Arrays.<String>asList(".txt",".doc",".jpg");
@Overridepublicbooleanaccept(Filepathname){
if(pathname.isDirectory()){
returntrue;
}
Stringname=pathname.getName().toLowerCase();
intindex=name.lastIndexOf('.');
Stringsuffix=(index>-1)?name.substring(index):"";
returnsuffixes.contains(suffix);
}
publicstaticvoidmp(Filefile){
if(file.isDirectory()){
File[]files=file.listFiles(newFilterImp());
if(files==null)return;
for(Filef:files){
mp(f);
}
}
else
System.out.println(file.getPath());
}
publicstaticvoidmain(String[]args){
File[]roots=File.listRoots();
System.out.println(Arrays.toString(roots));
for(Fileroot:roots){
mp(root);
}
}
}
遞歸列出硬碟里的txt doc jpg文件。(有讀取許可權的)
Ⅳ java 如何讀進文件內容時過濾逗號
package com.kk.tool;
import java.util.StringTokenizer;
/** java 如何讀進文件內容時過濾逗號 */
public class Filter {
public static final String FT = ",,";
public static String fileInfo = "ad,,,dkfj,sad;fjiwefjsa,,f,fas,f,,a,,sdfs,dfas,df";
public static String dhFilter(String fileInfo) {
StringTokenizer stk = new StringTokenizer(fileInfo, FT);
StringBuffer sb = new StringBuffer();
while (stk.hasMoreTokens()) {
sb.append(stk.nextToken());
}
return sb.toString();
}
public static void main(String[] args) {
System.out.println(fileInfo);
System.out.println(dhFilter(fileInfo));
}
}
ad,,,dkfj,sad;fjiwefjsa,,f,fas,f,,a,,sdfs,dfas,df
addkfjsad;fjiwefjsaffasfasdfsdfasdf
Ⅵ java中文件瀏覽對話框中怎麼過濾文件類型
JFileChooser chooser = new JFileChooser();
FileNameExtensionFilter filter = new FileNameExtensionFilter(
"JPG & GIF Images", "jpg", "gif");
chooser.setFileFilter(filter);
int returnVal = chooser.showOpenDialog(parent);
if(returnVal == JFileChooser.APPROVE_OPTION) {
System.out.println("You chose to open this file: " +
chooser.getSelectedFile().getName());
}
JFileChooser就可以實現文件選擇,但是只顯示指定的文件類型的過濾類FileNameExtensionFilter只是JDK1.6版本里的,JDK1.4及其以版下是沒有的,如權果想在JDK1.4里實現過濾,可以去1.6版本里找到該源碼,自己編譯使用
Ⅶ java io 讀入文件 怎麼過濾特殊字元
1.io只能在讀完之後才能對讀出來的數據String數組繼續判斷。讀完之後循環進行過濾
Ⅷ java讀取txt文件,如何過濾掉注釋
處理的重點就是如何判斷和刪除兩行注釋中間的不是以"#"或者"~"開頭的注釋行,草草寫了段代碼,對於樓主給的那段some.txt能夠正常處理
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class DelectComments {
public static void main(String rags[]) {
File f = new File("D:\\Hello.txt");
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(f));
boolean flag1 = false;// #
boolean flag2 = false;// ~
String content = "";
// last output content
ArrayList<String> outputContents = new ArrayList<String>();
// the number of lines that between 2 comments lines start with "#" or "~"
int commentsLineNum = 0;
while ((content = br.readLine()) != null) {
// the line is comments and start with "#"
if (content.startsWith("#")) {
// delete the comments lines between 2 comments lines start with "#"
if (flag1) {
for (int i = 0; i < commentsLineNum; i++) {
outputContents.remove(outputContents.size() - 1);
}
commentsLineNum = 0;
} else {
flag1 = true;
}
// the line is comments and start with "~"
} else if (content.startsWith("~")) {
// delete the comments lines between 2 comments lines start with "~"
if (flag2) {
for (int i = 0; i < commentsLineNum; i++) {
outputContents.remove(outputContents.size() - 1);
}
commentsLineNum = 0;
} else {
flag2 = true;
}
} else {
outputContents.add(content);
commentsLineNum++;
}
}
// output the text
for (String outputContent : outputContents) {
System.out.println(outputContent);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
但是還有個問題就是該程序沒有考慮到如果在正文以後再次出現注釋行的情況,如果用本程序處理的話,就會錯誤的把正文也作為注釋刪除,如果有高人的話還望能夠不吝賜教。
Ⅸ java過濾器怎麼指定不過濾哪些文件
port java.io.FilenameFilter;
/**
* 文件過濾器的簡單實現
*
* @author ajaxfan
* @date 2010-04-17
*/
public class FileNameFilterDemo {
public static void main(String[] args) {
list("d:/");
}
/**
* 列出特定路徑下的txt文件
*
* @param directoryName
* 路徑名
*/
private static void list(String directoryName) {
File dir = new File(directoryName);
// 確定該路徑指向一個目錄
if (dir.exists() && dir.isDirectory()) {
// 列出所有結尾為txt的文件
File[] files = dir.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return name.endsWith("txt");
}
});
System.out.println(java.util.Arrays.toString(files));
}
}
}
Ⅹ java讀取txt文件,如何過濾掉注釋以及空格
importjava.io.RandomAccessFile;
/**
*格式
*
*
*<p>
*
*@authorcs121102018年11月16日
*@see
*@since1.0
*/
publicclassFormatText{
publicstaticvoidmain(String[]args){
try{
RandomAccessFileacf=newRandomAccessFile("d://FormatText.java","r");
Stringline;
booleanisComment=true;
while(null!=(line=acf.readLine())){
//去除前後空格
//line.trim();
StringnoneSpaceLine=removeAllSpace(line);
//簡單的註解
if(isSimpleComment(noneSpaceLine)){
continue;
}
//多行註解
if(noneSpaceLine.startsWith("/*")){
isComment=true;
}
if(isComment&&noneSpaceLine.endsWith("*/")){
isComment=false;
continue;
}
if(!isComment){
System.out.println(noneSpaceLine);
}
}
acf.close();
}catch(Exceptione){
e.printStackTrace();
}
}
(Stringline){
if(line.startsWith("//")){
returntrue;
}
returnfalse;
}
/**
*注意:這里移除所有的空格,如果只想移除前後兩端的,請使用:line.trim();
*
*@paramline
*行
*@returnString
*/
(Stringline){
StringBuilderb=newStringBuilder(line.length());
for(charch:line.toCharArray()){
intnum=(int)ch;
if(num!=9&&num!=32){
b.append(ch);
}
}
returnb.toString();
}
}
測試數據為上面的java文件,測試結果如下
publicclassFormatText{
publicstaticvoidmain(String[]args){
try{
RandomAccessFileacf=newRandomAccessFile("d://FormatText.java","r");
Stringline;
while(null!=(line=acf.readLine())){
StringnoneSpaceLine=removeAllSpace(line.trim());
if(isSimpleComment(noneSpaceLine)){
continue;
}
System.out.println(noneSpaceLine);
}
acf.close();
}catch(Exceptione){
e.printStackTrace();
}
}
(Stringline){
if(line.startsWith("//")){
returntrue;
}
returnfalse;
}
(Stringline){
StringBuilderb=newStringBuilder(line.length());
for(charch:line.toCharArray()){
if(ch!=''){
b.append(ch);
}
}
returnb.toString();
}
}