2017-03-15 7 views
0

私は初心者プログラマーです。私は日食を使用しています。文字の間に余分なスペースを入れてファイルを1つのファイルから別のファイルにコピーする

:私は別のファイルから行ずつコピーして、これはソースファイルのサンプルコンテンツであるエンド

の行と「D」の冒頭に「s」を追加するためにさまざまなソースからのコードをパッチを適用しました

Broccolini is like a baby version of broccoli. 

これはよく動作しますが、文字は次のようにターゲットファイルに分離されています

"s" B r o c c o l i n i i s l i k e a b a b y v e r s i o n o f b r o c c o l i ."d" 

私は私のようにそれを使用し、検索し、UTF-16は非常に指定しなければならないことに気づいた:これは私の完全なコードです...

BufferedReader brFileToCopyFrom = new BufferedReader(new InputStreamReader(fileToCopyFrom, "UTF-16")); 

が、それはうまくいきませんでした:

import java.io.BufferedReader; 
import java.io.FileReader; 
import java.io.File; 
import java.io.FileInputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.PrintStream; 


public class mainClass { 

public static void main(String[] args) throws IOException { 


File source = new File("C:\\Users\\ser\\Dropbox\\DataCollection\\LanguageModel\\SourceFile.txt"); 
File target = new File("C:\\Users\\ser\\Dropbox\\DataCollection\\LanguageModel\\emptyText.txt"); 
InputStream fileToCopyFrom= new FileInputStream ("C:\\Users\\alhanouf alnasser\\Dropbox\\DataCollection\\LanguageModel\\SourceFile.txt"); 
PrintStream fstream =new PrintStream(target); 
BufferedReader brSource = new BufferedReader(new FileReader(source)); 
String lineSource; 
String lineToCopy; 
String TempLine; 


if (!target.exists()) 
    { 
    target.createNewFile(); 
    System.out.println("a new file was created ooooops"); 
} 


while((lineSource = brSource.readLine()) != null) { 
    TempLine="<s>"+ lineSource+"</s>"; 
    BufferedReader brFileToCopyFrom = new BufferedReader(new InputStreamReader(fileToCopyFrom, "UTF-16")); 
    fstream.println(TempLine); 
    } 

    fileToCopyFrom.close(); 
    } 
} 
+1

すべてのスペースを削除しますか?ソースファイルはどのように見えますか? –

+0

いいえ、私はそれがソースファイルのスペースと同じ間隔を持つようにします。私は質問にソースコンテンツを追加しました。 – alha

+0

なぜたくさんの 'File'オブジェクトがありますか?確かに「in」と「out」で十分です。私は、エンコーディングが関連性があるとは思わない。簡略化した入力ファイルと出力ファイルを表示してください –

答えて

0

修正するには問題は、ソースファイルのエンコーディングを手動でチェックしました。それはANSIでした。

while((lineSource = brSource.readLine()) != null) { 
    BufferedReader brFileToCopyFrom = new BufferedReader(new InputStreamReader(fileToCopyFrom, "UTF-8")); 
    TempLine="s"+ lineSource+"d"; 
    fstream.println(TempLine);  
    } 

を、それが完全に働いた:

したがって、私は、エンコーディングUTF-8

と、コードに別のファイルとしての私のソースファイルを保存しました!

関連する問題