2017-11-17 13 views
0

텍스트 파일에서 데이터를 읽는 코드를 작성했습니다. 내가 파일에서 데이터를로드 한 후 ASCII로 UTF8로 변환하는 방법을 알고 싶습니다. 아래는 필자가 작성했지만 전환을 수행 할 방법을 찾아야하는 코드의 일부입니다. 이전 질문에서 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 문자 집합 중 하나를 참조합니까? 기본 및 데이터 *를 기본 ASCII로 저장할 수 있으면 유니 코드에 동일한 코드 포인트 값을 가진 모든 기본 ASCII 문자가 포함되므로 변환이 필요하지 않습니다. – Andreas

+0

예. 기본 문자 집합이지만 내 원본 파일에 다음과 같은 문자가 있습니다. Šaltenis, Simonas –

답변

0

여기에 원래의 코드입니다. UTF8은 아스키에서보다 더 많은 문자가 같은 아스키 변환



    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

괜찮습니다. 이제 다음을 얻었습니다. symbolChange를 찾을 수 없습니다. StandardCharsets –