2010-03-25 88 views
0

我想用文本文件中的文本顯示方式打印Java中的簡單文本文件的內容。在Java中打印文本文件的確切內容

打印輸出與文本文件具有相同的內容,但格式不一樣。打印輸出時忽略製表符和換行符。任何幫助將非常感激。

+3

告訴我們如何你閱讀它以及如何打印它。否則,我們只是猜測。 – 2010-03-25 11:02:44

+1

除非你發佈一些代碼,否則我們無法猜測你做了什麼。 – bmargulies 2010-03-25 11:02:58

回答

-1

FileUtils.readFileToString(file)應該這樣做(從commons-io),但要注意更大的文件,因爲它們可能會佔用爲虛擬機分配的整個內存。

您可以使用的另一件事是IOUtils.copy(new FileInputStream(..), outputStream); - 這將從一個流(在這種情況下是一個文件流)轉移到另一個輸出流。

+0

你不會用readFileToString得到確切的內容(問什麼問題)。如果輸入文件末尾不包含換行符,則會添加一個換行符。 – gyorgyabraham 2013-07-11 11:45:57

2

正如@Joachim Sauer和@bmargulies所指出的,沒有更多細節,我們無法真正地告訴你究竟是什麼問題。

但是爲了給你一些東西來對比你的代碼,下面的代碼將讀取一個作爲參數提供的文件,然後逐字讀取它(即它支持unicode字符),然後將它打印出來。如果這不能實現你的目標,一個特定的(小)輸入例子就會失敗。

import java.io.*; 
class printout { 
    public static void main (String[] args) { 
     if (args.length < 1) { 
     System.err.println ("Usage: printout <filename>"); 
     System.exit (1); 
     } 

     File sourceFile = new File (args[0]); 
     FileReader fr = null; 
     try { 
     fr = new FileReader (sourceFile); 
     int inChar; 

     while ((inChar = fr.read()) != -1) { 
      System.out.printf ("%c", inChar); 
     } 
     } catch (IOException e) { 
     System.err.printf ("Failure while reading %s: %s\n", 
          args[0], e.getMessage()); 
     e.printStackTrace(); 
     } finally { 
     try { 
      if (fr != null) { fr.close(); } 
     } catch (IOException e) { 
      System.err.printf ("Error closing file reader: %s\n", 
           e.getMessage()); 
      e.printStackTrace(); 
     } 
     } 
    } 
} 
+0

if (args.length ");? – 2010-03-25 11:29:56

+0

1.)不要使用HTML標籤來格式化代碼2)。它不逐字節讀取,它逐字符讀取。 – 2010-03-25 11:35:29

+0

@Joachim Sauer:謝謝你指出我的字符逐字符讀取的錯誤,而不是逐字節;我已經相應地更正了答案文本。 – RTBarnard 2010-03-25 11:39:06

0

打印的意思是this?然後嘗試用例如4個空格和\ n帶有新的drawString調用。

另一種可能性是填寫JTextComponent或JEditorPane並將其打印出來。

如果你的意思是正常SYS-出印刷再看看RTBarnard +使用的答案:

BufferedReader reader = new BufferedReader(
    new InputStreamReader(new FileReader("file.txt"), "UTF-8"); 
reader.readLine(); etc 

這是我的眼睛更容易,你總是會使用正確的編碼