第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么缺少回車符?

為什么缺少回車符?

湖上湖 2022-06-15 15:27:29
我有一個 SQL 命令將字段更新到表中,并根據“cat file.txt”填充它。這個文件有很多行,我想稍后進入休眠字段,但似乎在從 db hibernate 讀取它之后刪除所有回車。這是我從 shell 腳本(bash)執(zhí)行的腳本: REQUEST_FILE=`cat file.txt` echo "UPDATE table SET request_info='$REQUEST_FILE'  WHERE id=1;" > ./after.sql 如果我做 after.sql 的 cat 我得到: UPDATE table SET request_info='1-Start-Env Script for Env 2-insert done 3-update info done 4-all performed correctly'  WHERE id=29;這是數據庫表結構:Table: tableColumns:id int(11) AI PK submit_date datetime request_type varchar(45) request_info longtext這是存儲在 db 上的數據,該行如何:# id, submit_date,request_type, request_info'29', '2019-02-11 04:55:21', 'check', '1-Start-Env Script for Env\n2-insert done\n3-update info done\n4-all performed correctly'所以直到這一步我猜一切都很好,因為字段包含'\ n'Hibernate 類是這樣完成的:@Entity@Table(name="table")@NamedQuery(name="Table.findAll", query="SELECT u FROM Table u")public class Table implements Serializable {   private static final long serialVersionUID = 1L;   @Id   @GeneratedValue   private int id;   @Column(name="request_info")   private String requestInfo;   @Column(name="request_type")   private String requestType;   @Temporal(TemporalType.TIMESTAMP)   @Column(name="submit_date")   private Date submitDate;當我訪問 requestInfo 變量時,輸出是:1-Start-Env 腳本用于 Env2-insert done3-update info done4-all 執(zhí)行正確此變量用于在單擊 JSF 頁面中的按鈕后創(chuàng)建文件:  HttpServletResponse response = (HttpServletResponse)   fc.getExternalContext().getResponse();    response.reset();    response.setContentType("text/plain");    response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");    OutputStream output = response.getOutputStream();     output.write(request.getRequestInfo().getBytes());    output.flush();    output.close();如果我執(zhí)行 System.out 我看到正確的數據,那么我猜是 getBytes 函數沒有返回回車:         System.out.println("file content:" +request.getRequestInfo());輸出:file content:1-Start-Env Script for Env 2-insert done 3-update info done 4-all performed correctly你有什么主意嗎?謝謝
查看完整描述

1 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

您的問題是換行符。

而不是\n,\r\n用于文件中的新行。

但是,這不會解決所有平臺上的問題,只會解決您正在測試的平臺。

有關換行符和不同平臺的更多信息,請參見此處:

https://superuser.com/questions/374028/how-are-n-and-r-handled-differently-on-linux-and-windows

您也可以嘗試以下方法:

output.write(request.getRequestInfo().replaceAll("(\\\\r\\\\n|\\\\n)", "\\\n"));

同樣,您的 servlet 不知道瀏覽器在哪個平臺上(Windows、Mac 或其他),因此除非您要查看用戶代理標頭或其他東西,否則您總是會遇到一個系統(tǒng)或另一個系統(tǒng)的問題。


查看完整回答
反對 回復 2022-06-15
  • 1 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號