2014-06-08 15 views
7

Tôi đang làm việc trên một dự án mà tôi cần in một số dữ liệu vào một tập tin. Trong giai đoạn gỡ lỗi, tôi muốn ghi đè lên tệp văn bản cũ để tôi không phải xóa tệp cũ chỉ để xem kết quả của một số thay đổi mà tôi đã thực hiện trong mã. Hiện tại, dữ liệu đầu ra mới được thêm vào dữ liệu cũ trong tệp hoặc tệp không thay đổi chút nào (ngoài ra, tại sao điều này có thể là?). Sau đây, về cơ bản, phần in của mã:Làm thế nào để làm cho PrintWriter ghi đè lên tập tin cũ

public class Test { 
    public static void main(String[] arg) { 
    PrintWriter pw = null; 
    try { 
     pw = new PrintWriter(new FileOutputStream("Foo.txt", true)); 
    } catch (Exception e){} 
    double abra = 5; 
    double kadabra = 7;  
    pw.printf("%f %f \n", abra, kadabra); 
    pw.close(); 
    } 
} 

Cảm ơn!

+0

@Reimeus: Cảm ơn! Làm thế nào ngớ ngẩn của tôi :) Bất kỳ ý tưởng tại sao dữ liệu mới có thể không được nối thêm? –

+0

@AlexandreVandermonde Thật lạ khi không có phụ thêm - bạn có chắc là tệp có thể ghi được không? – dasblinkenlight

+1

@dasblinkenlight: Khi kiểm tra thêm tệp, tôi nhận thấy có thể tôi đã sai khi tuyên bố không có phụ thêm. Chúng tôi có thể có thể thả vấn đề. Dù sao cũng cảm ơn bạn! –

Trả lời

13

Pass false to the append parameter ghi đè lên tập tin:

pw = new PrintWriter(new FileOutputStream("Foo.txt", false)); 

Đi qua true cho tham số thứ hai chỉ ra rằng bạn muốn thêm vào tập tin; đi qua false có nghĩa là bạn muốn ghi đè tệp.

+0

Cảm ơn! Làm thế nào ngớ ngẩn của tôi :) Tôi sẽ chấp nhận câu trả lời của bạn càng sớm càng tốt. Bất kỳ ý tưởng nào tại sao dữ liệu mới có thể chưa được thêm vào? –

Các vấn đề liên quan