『壹』 如何用Java來進行文件切割和簡單的內容過濾
java中有一個FilenameFilter的介面,能夠過濾得到指定類型的文件或者目錄,可以版實現文件過濾器,如下代碼:權 accept(File file,String path)方法public class DirFilter implements FilenameFilter{private String type;public DirFilter(Strin
『貳』 在java中如何用正則表達式屏蔽javascript腳本
你需要把用戶評論的內容中的:
"&" 替換成 "&"
"<" 替換成 "<"
">" 替換成 ">"
'"' (雙引號回)替換成 '"'
"'" (單引號)替換成 '''
這樣就可以避免答客戶端的危險輸入了
形如<script type="text/javascript">alert("asdf");</script>
的評論就會被直接顯示出來(如同你看到的一樣=。=)
而不會被當作html標簽轉義
====修改====
我的輸入被轉義了,修改下,記得去掉空格
"&" 替換成 "& amp;"
"<" 替換成 "& lt;"
">" 替換成 "& gt;"
'"' (雙引號)替換成 '& quot;'
"'" (單引號)替換成 '& #39;'
『叄』 如何用java代碼對同一個txt文本逐行讀寫並過濾掉不要的信息。
你用readline讀出來之後就是一行一個字元串了
然後用indexof("張三"),大於-1就是你要的數據
『肆』 使用java編程 正則表達式 實現去除<script></script>之間的內容
^使用java編程 正則表達式 實現去除<script></script>之間的內容方式如下:
String str = str.replaceAll("<script[^>]*>[\\d\\D]*?</script>","");
其中<script[^>]表示匹配內script,*>[\\d\\D]*?表示任意字容符
『伍』 java在參數上過濾腳本攻擊加什麼註解
Java運行時會維護一個String Pool(String池, String常量池, 字元串緩沖區)
String池用來存放運行時中產生的各專種字元串,並且池屬中的字元串的內容不重復。
而一般對象不存在這個緩沖池,並且創建的對象僅僅存在於方法的堆棧區
String s = "accp";
創建s之前系統會先在"池子"中查找是否已經存在這個字元串, 如果存在則直接符號該字元串的句柄
如果不存在, 系統會創建一個新"accp"字元串, 並返回句柄, 以後再有"accp"被要求創建, 系統不會創建新的,而是直接返回已經存在的字元串的句柄
String s = new String("accp");
系統不會去"池子"中查找, 直接在內存中新開辟一塊空間, 初始化為"accp",並返回句柄
『陸』 在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 文件過濾器怎麼實現。
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文件,如何過濾掉注釋以及空格
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();
}
}
『玖』 在java中,如何截取有用的內容(在文本文件中)
你首先要確定你來舉例的源3行是否是真的3行,如果是,那麼問題就變成了從3行字元串中取出兩行,如果內容是固定的,那麼你可以這樣:
String lines=null;
while(lines=fis.readline()!=null)
{
if(lines.contens("Nov 23, 2014") || lines.contens("putPackout_MKD_share"))
.....
}
如果內容固定,那個改用正則表達式匹配
『拾』 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文件。(有讀取許可權的)