2017-11-17 38 views
0

テキストファイルからデータを読み取るコードを書いています。ファイルからデータを読み込んだ後、UTF8からASCIIに変換する方法を知りたいです。以下は私が書いたコードの一部ですが、変換を行う方法を見つける必要があります。私が以前の質問で言ったように、私はJavaにはとても新しいので、私に手を差し伸べてください。UTF8からJavaのASCIIへの変換

public static List<String> readFile(String filename) throws Exception { 
String line = null; 
List<String> records = new ArrayList<String>(); 


BufferedReader bufferedReader = new BufferedReader(new FileReader(filename)); 



while ((line = bufferedReader.readLine()) != null) { 
    records.add(line.trim()); 
} 


bufferedReader.close(); 
return records; 
} 

変更それに:

public static List<String> readFile(String filename) throws Exception { 
    return Files.readAllLines(Paths.get(filename), StandardCharsets.US_ASCII); 
} 

は、関連するjava.nioのパッケージをインポートするために覚えているか、あなたのプログラムはあなたにコンパイルエラーを与える

public static List<String> readFile(String filename) throws Exception { 
    String line = null; 
    List<String> records = new ArrayList<String>(); 


    BufferedReader bufferedReader = new BufferedReader(new FileReader(filename)); 



    while ((line = bufferedReader.readLine()) != null) { 
     records.add(line.trim()); 
    } 


    bufferedReader.close(); 
    return records; 
} 
+1

UTF8が明確に定義されていません。

はここで完全に動作するプログラムです。変換では、ASCII文字ではないUTF8文字に遭遇した場合、何をしたいですか? – vandale

+0

基本ASCII文字セット、または多くの*拡張* ASCII文字セットの1つを参照していますか?ベースとデータ*を基本ASCIIに格納できるのであれば、Unicodeには同じコードポイント値を持つすべての基本ASCII文字が含まれるため、変換は不要です。 – Andreas

+0

はい、私の元のファイルには私のような文字があります:Šaltenis、Simonas –

答えて

0

はここにあなたの元のコードです。 UTF8がASCIIでよりも多くの文字を持っているとして、ASCIIへの変換



    import java.nio.charset.StandardCharsets; 
    import java.nio.file.Files; 
    import java.nio.file.Paths; 
    import java.util.List; 

    public class Tests { 
     public static void main(String[] args) { 
      String filename = "C:\\Users\\username\\Desktop\\test.txt"; 
      try { 
       for(String s : readFile(filename)) { 
        System.out.println(s); 
       } 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
       e.printStackTrace(); 
      } 
     } 

     public static List readFile(String filename) throws Exception { 
      return Files.readAllLines(Paths.get(filename), StandardCharsets.US_ASCII); 
     } 
    } 

+0

インポートする必要があるユーティリティはありますか?私はメッセージが表示されます:シンボルを見つけることができません - 可変パス –

+0

@CosaRamirezそれはここにあります:java.nio.file.Paths。だから先に進んでクラスの先頭にjava.nio *とjava.nio.file *をインポートしてください。 –

+0

okこれで、次のようになりました:symbolChangeを見つけることができません。StandardCharsets –

関連する問題