2016-06-09 63 views
1

我正在處理我的學期項目中關於數據加密和解密的問題。我已經成功完成了加密部分,並且邏輯上解密應該也很容易,但是我很容易無法弄清楚如何做到這一點的Java.Because我並不java.i專家有一個字符串,它看起來像這樣要打開文件並訪問特定索引處的特定字符

cipher_string = "57 630 88 372 51 421 39 629 26 450 67 457 14 522 72 360 55 662 57 550 74 449 12 530 73 619 69 367 43 431 75 617 97 620 51 540 64 529"; 

上面的字符串實際上是純文本的形式ecrypted

user_plain_text = "hello this is bravo"; 

現在,如果你仔細看,你會發現冷杉cipher_string中的st數字是一個雙數字數字,然後第二個數字是一個三位數字,然後再一個兩位數字,然後是三位數字編號等等......

現在的2位數字實際上是.txt文件...即57.txt和88.txt和51.txt等等..而3位數字實際上是文件內char的索引..現在我想打開這些.txt文件在一個特定的序列,即打開57.txt文件,然後轉到索引630並在文件57.txt中的630處打印字符給用戶,然後再打開文件88.txt並轉到索引372並在372處將文件88.txt中的字符打印到用戶等等...但我不知道如何在Java中做...如果有些機構可以幫助我,即使在僞代碼..(對不起,我的英語不好)

回答

0

你必須拆分編碼字符串,然後從文件中讀取所需的字符。在下面找到一個例子,儘管它沒有注意正確的文件處理,也沒有處理異常。

String[] cipher_split = cipher_string.split(" "); 
FileReader in; 

for (String s : cipher_split) { 
    if (s.length == 2) { 
     File f = new File(s + ".txt"); 
     in = new FileReader(f); 
    } else if (s.length == 3) { 
     int i = 0; 
     int c; 
     while (i < Integer.parseInt(s)) { 
      c = in.read(); 
     } 
     System.out.print((char) c); 
     in.close(); 
    } 
} 
0

你會想用java.io.FileReader

import java.io.*; 

//... get your first number, in a variable. Here I call it 'num', but use a more descriptive name. 

File txt = new File(num+".txt"); 
FileReader fr = new FileReader(txt); 

現在,我們有一個的FileReader,我們可以使用the skip(long) function直接進入我們想要的:

// Load the second number into 'm' 

fr.skip(m); 
decodedString += fr.read(); 

然後循環直到完成。

相關問題