Ⅰ 如何通過java實現對指定目錄下的txt文件進行增刪改查
代碼如下:
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.FileInputStream;
importjava.io.FileOutputStream;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.OutputStreamWriter;
importjava.util.ArrayList;
importjava.util.List;
publicclassApp61{
publicstaticvoidmain(String[]args)throwsIOException{
//查找行輸出
Stringline=findFileLine("mylist.txt","abc");
System.out.println(line);
//刪除指定行
removeFileLine("mylist.txt",2);
}
staticvoidremoveFileLine(Stringfile,intline)throwsIOException{
List<String>lines=readFileLines(file);
lines.remove(line-1);
FileOutputStreamoutputStream=null;
=null;
BufferedWriterwriter=null;
try{
outputStream=newFileOutputStream(file);
streamWriter=newOutputStreamWriter(outputStream);
writer=newBufferedWriter(streamWriter);
for(Stringstr:lines){
writer.write(str+System.lineSeparator());
}
}finally{
if(writer!=null){
writer.close();
}
if(streamWriter!=null){
streamWriter.close();
}
if(outputStream!=null){
outputStream.close();
}
}
}
//查找行
staticStringfindFileLine(Stringfile,Stringkeywork)throwsIOException{
List<String>lines=readFileLines(file);
for(Stringline:lines){
if(line.contains(keywork)){
returnline;
}
}
return"";
}
//返迴文件所有行
staticList<String>readFileLines(Stringfile)throwsIOException{
List<String>lines=newArrayList<>();
FileInputStreaminputStream=null;
InputStreamReaderstreamReader=null;
BufferedReaderreader=null;
try{
inputStream=newFileInputStream(file);
streamReader=newInputStreamReader(inputStream);
reader=newBufferedReader(streamReader);
Stringline="";
while((line=reader.readLine())!=null){
lines.add(line);
}
}finally{
if(reader!=null){
reader.close();
}
if(streamReader!=null){
streamReader.close();
}
if(inputStream!=null){
inputStream.close();
}
}
returnlines;
}
}
Ⅱ java如何根據指定字元串刪除文本文件中的相應一行
可以通過BufferedReader 流的形式進行流讀取,之後通過readLine方法獲取到的內容,之後通過if判斷出符合條件的重寫如新文件,不符合的直接舍棄即可。
舉例:
BufferedReader bre = null;
OutputStreamWriter pw = null;//定義一個流
try {
String file = "D:/test/test.txt";
bre = new BufferedReader(new FileReader(file));//此時獲取到的bre就是整個文件的緩存流
pw = new OutputStreamWriter(new FileOutputStream(「D:/test.txt」),"GBK");//確認流的輸出文件和編碼格式,此過程創建了「test.txt」實例
while ((str = bre.readLine())!= null) // 判斷最後一行不存在,為空結束循環
{
if(str.indexOf("排除")<0){//判斷是否需要舍棄
pw.write(str);//將要寫入文件的內容,可以多次write
}
}
bre.close();//關閉流
pw.close();//關閉流
備註:文件流用完之後必須及時通過close方法關閉,否則會一直處於打開狀態,直至程序停止,增加系統負擔。
Ⅲ java 文件中刪除一行(或某個字元)
用「」替換文件中的內容達到刪除目的
importjava.io.InputStream;
importjava.io.BufferedReader;
importjava.io.BufferedWriter;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.util.Scanner;
importjava.io.FileNotFoundException;
importjava.io.IOException;
publicclasszifutihuan
{
protectedstaticvoidrep(Stringch)
{
BufferedReaderbis=null;
FileWriterbos=null;
Strings=null;
try
{
bis=newBufferedReader(newFileReader("1.txt"));
bos=newFileWriter("2.txt");
while(null!=(s=bis.readLine()))
{
s=s.replaceAll(ch,"");
System.out.println(s);
s=s+" ";
bos.write(s);
}
bos.close();
bis.close();
s=null;
}
catch(FileNotFoundExceptione)
{
.out.println("未找到文件 ");
}
catch(IOExceptionee)
{
System.out.println("aaa");
}
}
publicstaticvoidmain(Stringargs[])
{
rep("123");
}
}
Ⅳ java如何刪除txt文件的某一行RandomAccessFile可以嗎
刪除不好做,因抄為你是一個文件內容的襲刪除。
可以用字元串數組來保存每一行的值,刪除了之後,再重新保存進去。
可以這樣做:比如說你的文件路徑:c:/a.txt
1.File file = new File("c:/a.txt");
2.BufferedReader reader = new BufferedReader(file);
3.byte[] strValue = new byte[(int)file.length()];
4.String str = reader.read(strValue);//按文件大小一次讀入
5.String rows = str.split("\r\n");//按換行符拆分,即數組的每一條,對應文件每一行的內容。
6.如果要刪除按條件刪除某一行,只需要判斷字元串數組是否存在這一行了,如果存在,替換為「」即可。
7.Writer writer = new FileWriter(file);
8.
for(int i=0;i<rows.length;i++){
writer.write(rows[i]);
}
只是分析了一下,具體步驟還是你來完成了。。
Ⅳ Java 如何使用輸入流和輸出流 將txt文件中的某一行數據刪除
按行讀取文本,寫入一個StringBuilder或StringBuffer對象中,循環寫入時判斷刪除行時不寫入,最後將拼接的字元串寫入原文件即可,這裡面需要注意存儲字元串長度。
Ⅵ JAVA如何刪除文本文檔里的某一行
importjava.io.*;
publicclassTest{
publicstaticvoiddelete(Stringfile,Stringtext){
(newFile(file),text);
}
publicstaticvoiddelete(Filefile,Stringtext){
Filetemp=null;
BufferedReaderbr=null;
PrintWriterpw=null;
try{
temp=File.createTempFile("temp","temp");
pw=newPrintWriter(temp);
br=newBufferedReader(newFileReader(file));
while(br.ready()){
Stringline=br.readLine();
System.out.println(line);
if(line.equals(text)){
continue;
}
pw.println(line);
}
pw.flush();
}catch(IOExceptione){
e.printStackTrace();
}finally{
safeClose(br);
safeClose(pw);
if(temp!=null){
file.delete();
temp.renameTo(file);
}
}
}
privatestaticvoidsafeClose(Closeablecloseable){
if(closeable!=null){
try{
closeable.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
}