All,java.net.URLConnection.guessContentTypeFromStream và text/plain
Tôi cố gắng để xác định tập tin văn bản đơn giản với kết thúc dòng Mac và, bên trong một InputStream, âm thầm chuyển đổi chúng sang Windows hoặc Linux kết thúc dòng (quan trọng một phần là nhân vật LF, thực sự). Cụ thể, tôi đang làm việc với một số API lấy InputStream và bị khóa cứng để tìm kiếm \ n làm dòng mới.
Đôi khi, tôi nhận tệp nhị phân. Rõ ràng, một tập tin không phải là văn bản giống như không nên thay thế này được thực hiện, bởi vì giá trị đó sẽ xảy ra tương ứng với \ r rõ ràng là không thể im lặng được theo sau bởi một \ n mà không mangling những điều xấu.
Tôi đang cố gắng sử dụng java.net.URLConnection.guessContentTypeFromStream
và chỉ thực hiện chuyển đổi dòng cuối nếu loại là văn bản/đồng bằng. Thật không may, "text/plain"
dường như không có âm hưởng về giá trị trả về; tất cả những gì tôi nhận được là null
cho các tệp văn bản phẳng của mình và có thể không an toàn để giả định rằng tất cả các tệp không xác định được đều có thể được sửa đổi.
Thư viện nào tốt hơn (tốt nhất là trong kho lưu trữ Maven công cộng và nguồn mở) tôi có thể sử dụng để thực hiện việc này không? Ngoài ra, làm thế nào tôi có thể làm cho guessContentTypeFromStream làm việc cho tôi? Tôi biết tôi đang mô tả một ứng dụng độc hại và không có giải pháp nào có thể hoàn hảo, nhưng tôi chỉ nên coi "null" có khả năng là "text/plain" và tôi chỉ cần viết nhiều mã hơn để tìm bằng chứng rằng nó không phải là 't?
+1 cho "gamut". – skaffman