我很难删除文本文件中的一行,我使用了这段代码,但我最终删除了所有行,需要一些帮助。
    try //vacation leave/
{
    File inputFile = new File("Adlawan" + code1);
    File tempFile = new File("AdalwanTempFile");
    BufferedReader reader = new BufferedReader(new FileReader(inputFile));
    BufferedWriter writer = new BufferedWriter(new FileWriter(tempFile));
    String lineToRemove = "AdlawanJan2012";
    String currentLine;
    while((currentLine = reader.readLine()) != null)
    {
        //trim newline when comparing with lineToRemove
        String trimmedLine = currentLine.trim();
        if(trimmedLine.equals(lineToRemove)) 
        {
         writer.write(currentLine); 
        }
    }   
    writer.close();
    reader.close();
    if(!inputFile.delete())
    {
        JOptionPane.showMessageDialog(null, "Could not rename file");
        return;
    }
    if(!tempFile.renameTo(inputFile))
        JOptionPane.showMessageDialog(null, "Could not rename file");
}
catch(Exception e)
{
    JOptionPane.showMessageDialog(null, " ");
}文件中的数据如下所示:
AdlawanJan2012度假-休假-积分-0.6875
AdlawanFeb2012度假-休假-积分-0.6875
AdlawanMar2012度假-休假-积分-0.6875
修剪线条后所需的结果:
AdlawanFeb2012度假-休假-积分-0.6875
AdlawanMar2012度假-休假-积分-0.6875
谢谢..。
发布于 2012-07-25 17:04:44
如果行以"lineToRemove"变量开头,我认为您正在尝试删除文件中的行,在这种情况下,您可能希望使用"startsWith"方法而不是"equal"方法。
while((currentLine = reader.readLine()) != null)
{
    //trim newline when comparing with lineToRemove
    String trimmedLine = currentLine.trim();
    if(!trimmedLine.startsWith(lineToRemove)) 
    {
        // if current line not start with lineToRemove then write to file
        writer.write(currentLine); 
    }
}发布于 2012-07-25 17:09:15
trim()方法仅删除前导和尾随空格,而不删除空格后面的字符。
String lineToRemove = "AdlawanJan2012";....String trimmedLine = currentLine.trim();
if(trimmedLine.substring(0, 14).equals(lineToRemove)) {
    //Your deletion logic
}发布于 2013-05-18 13:52:57
逐行读取文件内容并将其复制到另一个文件(临时文件)中是一个好主意,最好是随机访问文件,并省略您想要删除的行。只需将其余内容复制到临时文件中,并省略要删除的行。然后将文件重命名为原始名称。请不要样品。我需要你自己做这件事,这样你就可以自学了。祝好运
https://stackoverflow.com/questions/11645881
复制相似问题