从文本文件中删除特定行

thecodepro90

我想要一个方法来获取文件路径,然后从文本文件中删除特定的行,这就是我想出的代码。

方法.java

public class Method {
static void deletefileline(String file, Integer line) throws IOException {
    ArrayList<String> filecontent = new ArrayList<String>();
    try {
        File myObj = new File(file);
        Scanner myReader = new Scanner(myObj);
        while (myReader.hasNextLine()) {
            String data = myReader.nextLine();
            filecontent.add(data);
        }
        myReader.close();
    } catch (FileNotFoundException e) {
        System.out.println("An error occurred.");
        e.printStackTrace();
    }
    File f = new File(file);
    f.delete();
    filecontent.remove(line);
    try {
        File newfile = new File(file);
        newfile.createNewFile();
    } catch (IOException e) {
        System.out.println("An Error Occured");
    }
    for (Integer i = 0; i < filecontent.size(); i++) {
        String textToAppend = "\r\n" + filecontent.get(i);
        Path path = Paths.get(file);
        Files.write(path, textToAppend.getBytes(), StandardOpenOption.APPEND);
    }
}

public static void main(String[] args) {
    deletefileline("src/test.txt", 1);
 }
}

这是文本文件

测试.txt

hi
hello
hii
helloo

这是我运行 Methods.java 后的文本文件

输出:

hi
hello
hii
helloo

它不会显示它,但在第一个“hi”之前有一个空格,所以它只在第 1 行添加了一个空格。

所以问题是,当它运行时,它只在第 1 行添加了一个额外的行。

哈巴713

为什么没有删除线?

https://docs.oracle.com/javase/8/docs/api/java/util/ArrayList.html

  • E remove(int index)移除此列表中指定位置的元素。
  • boolean remove(Object o)从此列表中删除第一次出现的指定元素(如果存在)。

由于Integer lineisObject而不是原始数据类型int,因此此调用

filecontent.remove(line);

尝试删除内容等于的行new Integer(1)

将方法参数更改为int line或将类型转换添加到调用filecontent.remove((int) line)

为什么要添加一个空行?

此语句添加了额外的空间:

String textToAppend = "\r\n" + filecontent.get(i);

像这样改变它:

String textToAppend = filecontent.get(i) + "\r\n";

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从文本文件中删除特定行

如何从文本文件中删除特定行?

如何删除文本文件中的特定行?

删除文本文件中包含特定字符的行

删除文本文件中的行

在同时对文本文件进行某些操作之后,如何删除该文本文件中的特定行

删除特定行后如何删除文本文件中的空白行?

如何通过输入文件从具有特定值的文本文件中删除行?

从文本文件中删除单词中的特定模式

如何在Delphi中从文本文件中删除特定行

如何在C ++中删除文本文件中的特定行

如何从python中的文本文件中删除特定行

在文本文件的特定行中更改单独的文本

从文本文件中删除奇数行或偶数行

从文本文件中删除特定单词

如何删除文本文件中的特定段落?

使用sed从文本文件中删除特定的行号?

如何从文本文件中删除特定内容?

删除文本文件中逗号之间的特定模式

如何从文本文件中删除特定范围的字符?

试图删除文本文件中包含特定字符的行

删除包含特定字符串的文本文件中的行 /

Python程序可删除文本文件中的特定行

如何从文本文件中删除包含特定字符串的所有行?

删除Ruby中文本文件中包含特定单词的行

使用Python从文本文件中删除特定数量的行

基于一个1变量删除文本文件中的特定行

如何通过终端从文本文件中删除包含特定单词的行?

如何从文本文件的行中删除特定单词?