簡體   English   中英

如何在Java中讀取%字符

[英]How to read % Character in Java

我必須編寫一個小解析應用程序,該應用程序將重寫一些其他信息的postscriptfile。

為了實現該目標,我只使用了帶FileReader和FileWriter的BufferedReader。 但是我遇到了轉義字符(%符號)的問題。

Java忽略了此字符,輸入文件中的行“%!PS-Adobe-3.0”在字符串中將是“!PS-Adobe-3.0”,在輸出文件中也將相同。

你對男生有什么想法,我該怎么做...除了按字節閱讀:D

最好的祝福

編輯:這是代碼片段...基本文件以UTF8編碼:

BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream(args [0]),“ UTF-8”)); 字符串行= br.readLine();

在我用以下內容進行測試之前:BufferedReader br = new BufferedReader(new FileReader(args [0]));

它在同一問題上失敗->輸入文件中的“%!PS-Adobe-3.0”在變量“ line”中變為“!PS-Adobe-3.0”

將使用您引用的代碼從文件中讀取% 正如我在對該問題的評論中所說的那樣,如果字符確實存在(並且我希望它們確實存在),則問題不在該代碼中,而是在稍后的代碼中。

從此評論:

PS!Adobe-3.0 %%創建者:CompuSet版本9.4.0 %% CreationDate:5/15/2014 11:11:16 %% BoundingBox:0 0 595 842 %%頁面:(atend)%% DocumentNeededResources:( atend)%% DocumentSuppliedResources:(atend)以“ %%”開頭的行的第一個%符號也將被忽略。

...我猜您正在使用System.out.printf輸出正在讀取的內容,但這樣的錯誤地是:

System.out.printf(line); // <=== Wrong

傳遞給printf的第一個字符串是格式字符串,它可以以%開頭的占位符。 %%是輸出%的特殊“占位符”。

因此,您實際上看不到line的內容。 嘗試改用printprintln

System.out.println(line);

...或正確使用printf

System.out.printf("%s\n", line);

%s輸出不變的字符串。

暫無
暫無

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

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