java刪除文件一行
A. 關於java文件刪除某一行(Java高手進)
Java API中是沒有這樣的函數可以直接一調用的。但java.io.LineNumberReader類提供了定位行號的方法,或許可以有用。這是我的方法,試試看:
try {
//從文件中讀取,LineNumberReader提供方法setLineNumber(int lineNumber)定位當前行號
LineNumberReader reader = new LineNumberReader(new FileReader("data.sql"));
BufferedWriter writer = new BufferedWriter(new FileWriter("temp.txt"));
String sql ;
while( (sql=reader.readLine())!=null ){
;//執行sql語句,這里也可將本行的語句sql保存到另一個temp.txt文件中,如果本行是被刪除的語句,就不保存了,
//執行完後刪除data.sql,保存temp.txt就行了,
//這樣可以保證data.sql是裡面的幾百萬條記錄不被讀取到內存
writer.write(sql);//在這里可以判斷本行是否要被刪除,如要保存就將其保存至temp.txt
}
reader.close();
writer.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
B. Java 如何使用輸入流和輸出流 將txt文件中的某一行數據刪除
按行讀取文本,寫入一個StringBuilder或StringBuffer對象中,循環寫入時判斷刪除行時不寫入,最後將拼接的字元串寫入原文件即可,這裡面需要注意存儲字元串長度。
C. java如何刪除文本文件中的某行
.txt"),"GBK"));String c;while ((c=input.readLine())!=null) {ll.add(c);System.out.println(c);}input.close(); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace();} 1、從文件中讀出每一行的文本數據,並將其按行放入到一個list容器中;
D. 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]);
}
只是分析了一下,具體步驟還是你來完成了。。
E. JAVA如何刪除文本文檔里的某一行
你可以用StreamReader一行一行地讀,直到讀完,你把讀到的每一行加到ArrayList對象中存放,然後遍歷這個ArrayList對象,對每一行進行判斷處理,不要的直接刪除,然後再用StreamWriter把ArrayList對象中的數據重寫到文件中,原來的文件覆蓋掉。
F. java文本操作 刪除文本中的某一行(或一個對象)
你說的不就是一個記事本嗎,
//import java packages
import java.awt.*;
import java.awt.event.*;
import java.text.*;
import java.util.*;
import java.io.*;
import javax.swing.undo.*;
import javax.swing.border.*;
import javax.swing.*;
import javax.swing.text.*;
import javax.swing.event.*;
import java.awt.datatransfer.*;
public class Notepad extends JFrame implements ActionListener,DocumentListener{
//定義變數
//菜單
JMenu fileMenu,editMenu,formatMenu,viewMenu,helpMenu;
//"文件"的菜單項
JMenuItem fileMenu_New,fileMenu_Open,fileMenu_Save,fileMenu_SaveAs,fileMenu_PageSetup,fileMenu_Print,fileMenu_Exit;
//"編輯"的菜單項
JMenuItem editMenu_Undo,editMenu_Redo,editMenu_Cut,editMenu_Copy,editMenu_Paste,editMenu_Delete,editMenu_Find,editMenu_FindNext,editMenu_Replace,
editMenu_GoTo,editMenu_SelectAll,editMenu_TimeDate;
//"格式"的菜單項
JCheckBoxMenuItem formatMenu_LineWrap;
JMenu formatMenu_Color;
JMenuItem formatMenu_Font,formatMenu_Color_FgColor,formatMenu_Color_BgColor;
//"查看"的菜單項
JCheckBoxMenuItem viewMenu_Status;
//"幫助"的菜單項
JMenuItem helpMenu_HelpTopics,helpMenu_About;
//文本編輯區域
JTextArea editArea;
//狀態欄標簽
JLabel statusLabel;
//彈出菜單及菜單項
JPopupMenu popupMenu;
JMenuItem popupMenu_Undo,popupMenu_Redo,popupMenu_Cut,popupMenu_Copy,popupMenu_Paste,popupMenu_Delete,popupMenu_SelectAll;
//系統剪貼板
Toolkit toolKit=Toolkit.getDefaultToolkit();
Clipboard clipBoard=toolKit.getSystemClipboard();
//其它變數
boolean isNewFile=true; //是否新文件(未保存過的)
File currentFile; //當前文件名
String oldValue; //存放編輯區原來的內容,用於比較文本是否有改動
JButton fontOkButton; //字體設置里的"確定"按鈕
//工具欄按鈕
JButton newButton,openButton,saveButton,saveAsButton,printButton,undoButton,redoButton,
cutButton,Button,pasteButton,deleteButton,searchButton,timeButton,fontButton,
boldButton,italicButton,fgcolorButton,bgcolorButton,helpButton;
//創建撤消操作管理器
protected UndoManager undo = new UndoManager();
protected UndoableEditListener undoHandler = new UndoHandler();
//設置編輯區默認字體
protected Font defaultFont=new Font("宋體",Font.PLAIN,12);
//構造函數開始
public Notepad()
{
super("黃斌的記事本");
//獲取容器
Container container=getContentPane();
//創建菜單條
JMenuBar menuBar = new JMenuBar();
//創建文件菜單及菜單項並注冊事件監聽
JMenu fileMenu = new JMenu("文件(F)", true);
fileMenu.setMnemonic('F');
fileMenu_New = new JMenuItem("新建(N)", 'N');
fileMenu_New.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N, InputEvent.CTRL_MASK));
fileMenu_New.addActionListener(this);
fileMenu_Open = new JMenuItem("打開(O)...", 'O');
fileMenu_Open.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O, InputEvent.CTRL_MASK));
fileMenu_Open.addActionListener(this);
fileMenu_Save = new JMenuItem("保存(S)", 'S');
fileMenu_Save.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S, InputEvent.CTRL_MASK));
fileMenu_Save.addActionListener(this);
fileMenu_SaveAs = new JMenuItem("另存為(A)...", 'A');
fileMenu_SaveAs.addActionListener(this);
fileMenu_PageSetup = new JMenuItem("頁面設置(U)...",'U');
fileMenu_PageSetup.addActionListener(this);
fileMenu_Print = new JMenuItem("列印(P)...", 'P');
fileMenu_Print.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, InputEvent.CTRL_MASK));
fileMenu_Print.addActionListener(this);
fileMenu_Exit = new JMenuItem("退出(X)",'X');
fileMenu_Exit.addActionListener(this);
//創建編輯菜單及菜單項並注冊事件監聽
JMenu editMenu = new JMenu("編輯(E)", true);
editMenu.setMnemonic('E');
editMenu.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e){
checkMenuItemEnabled();//設置剪切、復制、粘貼、刪除等功能的可用性
}
}
);
editMenu_Undo = new JMenuItem("撤消(U)",'U');
editMenu_Undo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z, InputEvent.CTRL_MASK));
editMenu_Undo.addActionListener(this);
editMenu_Undo.setEnabled(false);
editMenu_Redo = new JMenuItem("重做(R)",'R');
editMenu_Redo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Y,InputEvent.CTRL_MASK));
editMenu_Redo.addActionListener(this);
editMenu_Redo.setEnabled(false);
editMenu_Cut = new JMenuItem("剪切(T)",'T');
editMenu_Cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X, InputEvent.CTRL_MASK));
editMenu_Cut.addActionListener(this);
editMenu_Copy = new JMenuItem("復制(C)",'C');
editMenu_Copy.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C, InputEvent.CTRL_MASK));
editMenu_Copy.addActionListener(this);
editMenu_Paste = new JMenuItem("粘貼(P)",'P');
editMenu_Paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V, InputEvent.CTRL_MASK));
editMenu_Paste.addActionListener(this);
editMenu_Delete = new JMenuItem("刪除(L)",'L');
editMenu_Delete.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0));
editMenu_Delete.addActionListener(this);
editMenu_Find = new JMenuItem("查找(F)...",'F');
editMenu_Find.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F, InputEvent.CTRL_MASK));
editMenu_Find.addActionListener(this);
editMenu_FindNext = new JMenuItem("查找下一個(N)",'N');
editMenu_FindNext.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,0));
editMenu_FindNext.addActionListener(this);
editMenu_Replace = new JMenuItem("替換(R)...",'R');
editMenu_Replace.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_H, InputEvent.CTRL_MASK));
editMenu_Replace.addActionListener(this);
editMenu_GoTo = new JMenuItem("轉到(G)...",'G');
editMenu_GoTo.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G, InputEvent.CTRL_MASK));
editMenu_GoTo.addActionListener(this);
editMenu_SelectAll = new JMenuItem("全選",'A');
editMenu_SelectAll.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.CTRL_MASK));
editMenu_SelectAll.addActionListener(this);
editMenu_TimeDate = new JMenuItem("時間/日期(D)",'D');
editMenu_TimeDate.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));
editMenu_TimeDate.addActionListener(this);
//創建格式菜單及菜單項並注冊事件監聽
JMenu formatMenu = new JMenu("格式(O)", true);
formatMenu.setMnemonic('O');
formatMenu_LineWrap = new JCheckBoxMenuItem("自動換行(W)");
formatMenu_LineWrap.setMnemonic('W');
formatMenu_LineWrap.setState(true);
formatMenu_LineWrap.addActionListener(this);
formatMenu_Font = new JMenuItem("字體(F)...",'F');
formatMenu_Font.addActionListener(this);
formatMenu_Color = new JMenu("設置顏色");
formatMenu_Color_FgColor=new JMenuItem("字體顏色");
formatMenu_Color_FgColor.addActionListener(this);
formatMenu_Color_BgColor=new JMenuItem("背景顏色");
formatMenu_Color_BgColor.addActionListener(this);
//創建查看菜單及菜單項並注冊事件監聽
JMenu viewMenu = new JMenu("查看(V)", true);
viewMenu.setMnemonic('V');
viewMenu_Status = new JCheckBoxMenuItem("狀態欄(S)");
viewMenu_Status.setMnemonic('S');
viewMenu_Status.setState(true);
viewMenu_Status.addActionListener(this);
//創建幫助菜單及菜單項並注冊事件監聽
JMenu helpMenu = new JMenu("幫助(H)", true);
helpMenu.setMnemonic('H');
helpMenu_HelpTopics = new JMenuItem("幫助主題(H)",'H');
helpMenu_HelpTopics.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F1,0));
helpMenu_HelpTopics.addActionListener(this);
helpMenu_About = new JMenuItem("關於記事本(A)",'A');
helpMenu_About.addActionListener(this);
//向菜單條添加"文件"菜單及菜單項
menuBar.add(fileMenu);
fileMenu.add(fileMenu_New);
fileMenu.add(fileMenu_Open);
fileMenu.add(fileMenu_Save);
fileMenu.add(fileMenu_SaveAs);
fileMenu.addSeparator(); //分隔線
fileMenu.add(fileMenu_PageSetup);
fileMenu.add(fileMenu_Print);
fileMenu.addSeparator(); //分隔線
fileMenu.add(fileMenu_Exit);
//向菜單條添加"編輯"菜單及菜單項
menuBar.add(editMenu);
editMenu.add(editMenu_Undo);
editMenu.add(editMenu_Redo);
editMenu.addSeparator(); //分隔線
editMenu.add(editMenu_Cut);
editMenu.add(editMenu_Copy);
editMenu.add(editMenu_Paste);
editMenu.add(editMenu_Delete);
editMenu.addSeparator(); //分隔線
editMenu.add(editMenu_Find);
editMenu.add(editMenu_FindNext);
editMenu.add(editMenu_Replace);
editMenu.add(editMenu_GoTo);
editMenu.addSeparator(); //分隔線
editMenu.add(editMenu_SelectAll);
editMenu.add(editMenu_TimeDate);
//向菜單條添加"格式"菜單及菜單項
menuBar.add(formatMenu);
formatMenu.add(formatMenu_LineWrap);
formatMenu.add(formatMenu_Font);
formatMenu.addSeparator();
formatMenu.add(formatMenu_Color);
formatMenu_Color.add(formatMenu_Color_FgColor);
formatMenu_Color.add(formatMenu_Color_BgColor);
//向菜單條添加"查看"菜單及菜單項
menuBar.add(viewMenu);
viewMenu.add(viewMenu_Status);
//向菜單條添加"幫助"菜單及菜單項
menuBar.add(helpMenu);
helpMenu.add(helpMenu_HelpTopics);
helpMenu.addSeparator();
helpMenu.add(helpMenu_About);
//向窗口添加菜單條
this.setJMenuBar(menuBar);
//創建文本編輯區並添加滾動條
editArea=new JTextArea(20,50);
JScrollPane scroller=new JScrollPane(editArea);
scroller.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
container.add(scroller,BorderLayout.CENTER);//向容器添加文本編輯區
editArea.setWrapStyleWord(true); //設置單詞在一行不足容納時換行
editArea.setLineWrap(true); //設置文本編輯區自動換行默認為true,即會"自動換行"
editArea.setFont(defaultFont); //設置編輯區默認字體
editArea.setBackground(Color.white); //設置編輯區默認背景色
editArea.setForeground(Color.black); //設置編輯區默認前景色
oldValue=editArea.getText(); //獲取原文本編輯區的內容
//編輯區注冊事件監聽
editArea.getDocument().addUndoableEditListener(undoHandler);
editArea.getDocument().addDocumentListener(this);
//創建右鍵彈出菜單
popupMenu=new JPopupMenu();
popupMenu_Undo=new JMenuItem("撤消(U)",'U');
popupMenu_Redo=new JMenuItem("重做(R)",'R');
popupMenu_Cut =new JMenuItem("剪切(T)",'T');
popupMenu_Copy=new JMenuItem("復制(C)",'C');
popupMenu_Paste=new JMenuItem("粘貼(P)",'P');
popupMenu_Delete=new JMenuItem("刪除(D)",'D');
popupMenu_SelectAll=new JMenuItem("全選(A)",'A');
popupMenu_Undo.setEnabled(false); //撤消選項初始設為不可用
popupMenu_Redo.setEnabled(false); //重做選項初始設為不可用
//向右鍵菜單添加菜單項和分隔符
popupMenu.add(popupMenu_Undo);
popupMenu.add(popupMenu_Redo);
popupMenu.addSeparator();
popupMenu.add(popupMenu_Cut);
popupMenu.add(popupMenu_Copy);
popupMenu.add(popupMenu_Paste);
popupMenu.add(popupMenu_Delete);
popupMenu.addSeparator();
popupMenu.add(popupMenu_SelectAll);
//右鍵菜單注冊事件
popupMenu_Undo.addActionListener(this);
popupMenu_Redo.addActionListener(this);
popupMenu_Cut.addActionListener(this);
popupMenu_Copy.addActionListener(this);
popupMenu_Paste.addActionListener(this);
popupMenu_Delete.addActionListener(this);
popupMenu_SelectAll.addActionListener(this);
//文本編輯區注冊右鍵菜單事件
editArea.addMouseListener(
new MouseAdapter(){
public void mousePressed(MouseEvent e)
{
checkForTriggerEvent(e);
}
public void mouseReleased(MouseEvent e)
{
checkForTriggerEvent(e);
}
private void checkForTriggerEvent(MouseEvent e)
{
if(e.isPopupTrigger())
popupMenu.show(e.getComponent(),e.getX(),e.getY());
checkMenuItemEnabled(); //設置剪切、復制、粘貼、刪除等功能的可用性
editArea.requestFocus(); //編輯區獲取焦點
}
});
//創建工具欄
JPanel toolBar=new JPanel();
toolBar.setLayout(new FlowLayout(FlowLayout.LEFT));
Icon newIcon=new ImageIcon("Icons/new.gif");
Icon openIcon=new ImageIcon("Icons/open.gif");
Icon saveIcon=new ImageIcon("Icons/save.gif");
Icon saveAsIcon=new ImageIcon("Icons/saveas.gif");
Icon printIcon=new ImageIcon("Icons/print.gif");
Icon undoIcon=new ImageIcon("Icons/undo.gif");
Icon redoIcon=new ImageIcon("Icons/redo.gif");
Icon cutIcon=new ImageIcon("Icons/cut.gif");
Icon Icon=new ImageIcon("Icons/.gif");
Icon pasteIcon=new ImageIcon("Icons/paste.gif");
Icon deleteIcon=new ImageIcon("Icons/delete.gif");
Icon searchIcon=new ImageIcon("Icons/search.gif");
Icon timeIcon=new ImageIcon("Icons/time.gif");
Icon fontIcon=new ImageIcon("Icons/font.gif");
Icon boldIcon=new ImageIcon("Icons/bold.gif");
Icon italicIcon=new ImageIcon("Icons/italic.gif");
Icon bgcolorIcon=new ImageIcon("Icons/bgcolor.gif");
Icon fgcolorIcon=new ImageIcon("Icons/fgcolor.gif");
Icon helpIcon=new ImageIcon("Icons/help.gif");
newButton= new JButton(newIcon);
openButton=new JButton(openIcon);
saveButton= new JButton(saveIcon);
saveAsButton=new JButton(saveAsIcon);
printButton=new JButton(printIcon);
undoButton=new JButton(undoIcon);
undoButton.setEnabled(false);
redoButton=new JButton(redoIcon);
redoButton.setEnabled(false);
cutButton=new JButton(cutIcon);
cutButton.setEnabled(false);
Button=new JButton(Icon);
Button.setEnabled(false);
pasteButton=new JButton(pasteIcon);
pasteButton.setEnabled(false);
deleteButton=new JButton(deleteIcon);
deleteButton.setEnabled(false);
searchButton=new JButton(searchIcon);
timeButton=new JButton(timeIcon);
fontButton=new JButton(fontIcon);
boldButton=new JButton(boldIcon);
italicButton=new JButton(italicIcon);
fgcolorButton=new JButton(fgcolorIcon);
bgcolorButton=new JButton(bgcolorIcon);
helpButton=new JButton(helpIcon);
newButton.setPreferredSize(new Dimension(22,22));
openButton.setPreferredSize(new Dimension(22,22));
saveButton.setPreferredSize(new Dimension(22,22));
saveAsButton.setPreferredSize(new Dimension(22,22));
printButton.setPreferredSize(new Dimension(22,22));
undoButton.setPreferredSize(new Dimension(22,22));
redoButton.setPreferredSize(new Dimension(22,22));
cutButton.setPreferredSize(new Dimension(22,22));
Button.setPreferredSize(new Dimension(22,22));
pasteButton.setPreferredSize(new Dimension(22,22));
deleteButton.setPreferredSize(new Dimension(22,22));
searchButton.setPreferredSize(new Dimension(22,22));
timeButton.setPreferredSize(new Dimension(22,22));
fontButton.setPreferredSize(new Dimension(22,22));
boldButton.setPreferredSize(new Dimension(22,22));
italicButton.setPreferredSize(new Dimension(22,22));
fgcolorButton.setPreferredSize(new Dimension(22,22));
bgcolorButton.setPreferredSize(new Dimension(22,22));
helpButton.setPreferredSize(new Dimension(22,22));
//注冊工具欄按鈕事件
newButton.addActionListener(this);
openButton.addActionListener(this);
saveButton.addActionListener(this);
saveAsButton.addActionListener(this);
printButton.addActionListener(this);
undoButton.addActionListener(this);
redoButton.addActionListener(this);
cutButton.addActionListener(this);
Button.addActionListener(this);
pasteButton.addActionListener(this);
deleteButton.addActionListener(this);
searchButton.addActionListener(this);
timeButton.addActionListener(this);
fontButton.addActionListener(this);
boldButton.addActionListener(this);
italicButton.addActionListener(this);
fgcolorButton.addActionListener(this);
bgcolorButton.addActionListener(this);
helpButton.addActionListener(this);
G. 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方法關閉,否則會一直處於打開狀態,直至程序停止,增加系統負擔。
H. 在java中如何刪除,修改文本文件中的一行
你可以先定義一個InputStreamReader讀取文本文件內容,然後再用一個LineNumberReader獲取剛才InputStreamReader的對象,LineNumberReader里有個方法readLine()是用來一行一行的順序讀取字元,然後用一個判斷語句來判斷你想修改的行,最後刪除或修改就可以了 如果還不明白,你可以把詳細程序的.java文件發給我,說明你程序的功能,我幫你看看,我的郵箱[email protected]
I. JAVA如何刪除文本文檔里的某一行
你可以先定義一個InputStreamReader讀取文本文件內容,然後再用一個LineNumberReader獲取剛才InputStreamReader的對象,LineNumberReader里有個方法readLine()是用來一行一行的順序讀取字元,然後用一個判斷語句來判斷你想修改的行,最後刪除或修改就可以了 。