2016-05-29 3 views
-2

私はこのファイルを読み書きするためにminecraft modの内部を使用しています。ファイル内にあります。Javaが先行スペースを疑問符に変更しています

ファイル入力サンプル:

{ 
   "ReturnToStart": "1b", 

ファイルアウトプットサンプル:

{ 
???"ReturnToStart": "1b", 
//xxxxxxxxxxxxxxxxxxxxxxx 
var ips = new java.io.FileInputStream("ABC.json"); 
var fileReader = new java.io.InputStreamReader(ips,"UTF-8"); 
var data1 = fileReader.read(); 
var data; 
var start1 = ""; 
while(data1 != -1) {  
data = String.fromCharCode(data1); 
start1 = start1+data; 
data1 = fileReader.read(); 
} 
fileReader.close(); 
var fileWriter = new java.io.FileWriter("J_out2.txt"); 
fileWriter.write(start1); 
fileWriter.close(); 
+2

あなたはJavaとJavaScriptを組み合わせています。彼らは2つの完全な言語です。エラーがありますか? –

+0

エラーはありません。それぞれの行頭に奇妙な文字を読み書きすることができます。キャリッジリターンと関係があると思います。 – TAP

答えて

0

NashornをJava 8で使用しているようです。基本的には、すべてのJavaオブジェクトにアクセスできるJava VMで実行されているJavaScriptです。私はそれらが普通の空間ではないと思います。そして、私はこれらが非破壊空間であると疑います(コード160)。 data1の値がこれらの位置にあるのは興味深いでしょう。

JavaScriptメソッドString.fromCharCodeは、NashornでUTF-8コードを適切に変換しません。 UTF-8では、1文字を複数の文字に分割することができ、readから返される値は16ビットに制限されているため、実際にはこれはうまくいかないでしょう。十分ではない。

以下はおそらく必要なものです。私はインクルードしましたが、start1変数をあなたのコードで使用したいかもしれないのでコメントしましたが、必要はありません。

var fileReader = new java.io.InputStreamReader(
    new java.io.FileInputStream("ABC.json"), "UTF-8"); 
var bufferedReader = new java.io.BufferedReader(fileReader); 
var fileWriter = new java.io.OutputStreamWriter(
    new java.io.FileOutputStream("J_out2.txt"),"UTF-8"); 
var line; 
// var start1=new java.lang.StringBuilder(); 
while(line=bufferedReader.readLine()) { 
    // start1.append(line); 
    // start1.append('\n'); 

    fileWriter.write(line); 
    fileWriter.write('\n'); 
} 
fileWriter.close(); 
bufferedReader.close(); 
0

var ips = new java.io.FileReader("ABC.json"); 
 
var data1 = ips.read(); 
 
var data; 
 
var start1 = ""; 
 
while(data1 != -1) {  
 
data = String.fromCharCode(data1); 
 

 
if (data1 ==11 ||data1 ==12 || data1 ==10) { 
 
data1 = ips.read(); 
 
continue; 
 
} 
 
//npc.say(data1+" "+ data); 
 
data = String.fromCharCode(data1); 
 
start1 = start1+data; 
 
data1 = ips.read(); 
 
} 
 
ips.close(); 
 
npc.say(start1);

私は改行、垂直タブ、フォームフィード(10,11,12)を取り出して動作します。

関連する問題