2012-12-20 27 views
5

Tôi đang cố gắng gửi thư bằng cách đọc nội dung từ tệp văn bản.Lệnh dòng mới ( n) không hoạt động trong khi các tệp handline với TomCat

file tôi đang cố gắng để đọc

Line 1 
Line 2 
Line 3 

Tôi đã thử nghiệm mã với JUnit và tôi nhận được mail với cùng định dạng như trong các tập tin văn bản.

Output mail sử dụng Junit

Line 1 
Line 2 
Line 3 

Nhưng khi triển khai trong Tomcat, tôi nhận được một email với nội dung nhưng dòng mới không nhận được công nhận.

email Output khi sử dụng tomcat máy chủ

Line 1Line 2Line 3 

Mã mà tôi đang sử dụng để đọc các nội dung của tập tin.

private String readFile(String pathname) throws IOException { 
     File file = new File(pathname); 
     StringBuilder fileContents = new StringBuilder((int) file.length()); 
     Scanner scanner = new Scanner(file); 
     String lineSeparator = System.getProperty("line.separator"); 

     try { 
      while (scanner.hasNextLine()) { 
       fileContents.append(scanner.nextLine() + lineSeparator); 
      } 
      return fileContents.toString(); 
     } finally { 
      scanner.close(); 
     } 
    } 

tôi đã đặt máy chủ trong chế độ gỡ lỗi và tôi có thể thấy rằng dòng sản phẩm mới là nhận được nối trong fileContents.toString()

Tôi không chắc chắn những gì tôi đang mất tích. Bất cứ điều gì liên quan đến bộ ký tự? Tôi không chắc chắn ....

+0

Như tôi giả định giá trị lineSeparator có thể không nhận được như bạn mong đợi trong tomcat. – iMBMT

+0

Linux và Windows có các dấu tách dòng khác nhau –

+1

Bạn đang đọc email như thế nào? Có thể ứng dụng thư của bạn đã ghi đè các dòng mới. – Perception

Trả lời

1

Nó có cái gì để làm với đầu mối từ Perception và nullix. Cách đọc thư và HTML.

Trong trường hợp của tôi, tôi đã thử nghiệm bằng cách gửi thư từ ứng dụng thư khách đang gửi "văn bản/html" loại thư đến ứng dụng của tôi. Vì vậy, khi tôi trả lời thư đó, thư trả lời cũng có định dạng "văn bản/html". Do đó, /n hoặc loại dữ liệu dòng nào mà tôi đã sử dụng đã bị bỏ qua.

Vì vậy, trong khi đọc thư, tôi chỉ đọc "văn bản/đồng bằng" loại mime. Vì vậy, trong khi trả lời thư này, tôi có thể in dòng mới.

0

Có thể cách bạn đang đọc đầu ra thư làm cho bạn nghĩ rằng dòng mới không có ở đó. Ví dụ: nếu bạn viết '\ n' làm dòng mới và mở tệp trên cửa sổ notepad, thì nó sẽ xuất hiện như thể dòng mới không có ở đó.

dùng xem văn bản phức tạp hơn như Notepad ++ nơi bạn có thể xem các ký tự khoảng trắng có thể giúp

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