簡體   English   中英

Java中Windows的行分隔符

[英]Line separator for Windows in java

我想將一些單詞保存到* .txt文件中。 但是有一個條件:每個單詞都必須換行。 所以我這樣寫:

String content ="";
String nl = System.lineSeparator();
content += "my" + nl + "some" + nl + "random" + nl + "words";

但是此代碼不起作用-所有單詞都在同一行中。

所以我嘗試使用特殊字符- \\r\\n

String content ="";
content += "my" + "\r\n" + "some" + "\r\n" + "random" + "\r\n" + "words";

仍然沒有用-文件中的所有單詞都在同一行:

隨機詞

除此之外:我的字符串content還通過以下方式保存到文件中:

<a href="data:text/txt;charset=utf-8,<%=content%>" download="results.txt"><button class="button">Download</button></a>

我應該使用哪種分隔符將單詞放在另一行?

(我正在使用Netbeans 8.0。在Windows記事本中打開文件)。

嘗試使用System.getProperty("line.separator")

在此處閱讀有關系統屬性以及完整的系統屬性列表。

System類維護一個Properties對象,該對象描述當前工作環境的配置。

“ line.separator”-操作系統用於分隔文本文件中的行的序列


System.lineSeparator()聲明了什么?

返回系統相關的行分隔符字符串。 它總是返回相同的值-系統屬性line.separator的初始值。

在UNIX系統上,它返回“ \\ n”; 在Microsoft Windows系統上,它返回“ \\ r \\ n”。


為什么要使用System.getProperty()

可以通過傳遞參數來更改“ line.separator”屬性,如下所示

java -Dline.separator=

看看我應該緩存System.getProperty(“ line.separator”)嗎?

data URI方案中使用base64

<a href="data:text/txt;charset=utf-8;base64,<%=base64_content%>" download="results.txt"><button class="button">Download</button></a>

在您的Java代碼中執行以下操作:

String content ="";
String nl = System.getProperty("line.separator");
content += "my" + nl + "some" + nl + "random" + nl + "words";
content = DatatypeConverter.printBase64Binary(content.getBytes("utf-8"));

演示: http//jsfiddle.net/bDRAq

好吧,這取決於您寫下內容的方式。 如果將其寫入文件系統上的文件,則很可能會正確結束。 但是,您並沒有使用程序將其保存到文件中,而是讓瀏覽器通過在html文件中包含鏈接來做到這一點。 在HTML中包含字符時,您需要使用URLEncoder類對其進行編碼。

在我看來,由於您在WebContainer中工作,因此由於您是JSP結構,因此您還可以實現一個Servlet,該Servlet返回請求的數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM