我试图从文本文件中删除一行文本而不复制到临时文件。 我试图通过使用Printwriter和扫描仪,并让他们在同一时间遍历文件,作家写什么扫描仪读取和覆盖每一行相同的东西,直到它到达我想要的行删除。 然后,我推进扫描仪,但不是作家,并继续像以前一样。 这里是代码: 但首先,参数:我的文件名是数字,所以这将读取1.txt或2.txt等,所以f指定的文件名。 我将它转换为一个文件的构造函数中的string。 Int n是我想要删除的行的索引。 public void deleteLine(int f, int n){ try{ Scanner reader = new Scanner(new File(f+".txt")); PrintWriter writer = new PrintWriter(new FileWriter(new File(f+".txt")),false); for(int w=0; w<n; w++) writer.write(reader.nextLine()); reader.nextLine(); while(reader.hasNextLine()) writer.write(reader.nextLine()); } catch(Exception e){ System.err.println("Enjoy the stack trace!"); e.printStackTrace(); } } 它给了我奇怪的错误。 它在堆栈跟踪中显示“NoSuchElementException”和“no line found”。 它指向不同的路线; nextLine()调用似乎可以做到这一点。 是否可以删除一条线? 如果是这样,我做错了什么? 如果没有,为什么? […]
我试图理解PrintWriter是一个我正在做的小程序,而我似乎无法让java创build这个文件,然后写上它。 当我执行下面的程序时,它会在第9行中给我一个Filenotfoundexeption错误。它也不能使我指定的目录中的文件。 我是新来的,所以请尽量保持答案简单。 我正在使用Eclipse。 import java.io.PrintWriter; import java.io.File; public class Testing { public static void main(String[] args) { File file = new File ("C:/Users/Me/Desktop/directory/file.txt"); PrintWriter printWriter = new PrintWriter ("file.txt"); printWriter.println ("hello"); printWriter.close (); } }