2016-08-03 133 views
-4

我想在java中讀取.rc文件並將其內容存儲在hashmap中。 .rc ext文件是在C/C++中使用的資源文件,我想用java開發應用程序。 請幫忙。提前致謝。如何在java中讀取.rc擴展名文件

public static void main(String[] args){ 
     try                                  
     {  
      JobConf job = new JobConf(new Configuration(), Application.class); 
      FileSystem fs = FileSystem.get(job);                       
      FileStatus [] fileStatuses = fs.listStatus(new Path("C:/Users/Desktop/fold/"));        
      LongWritable key = new LongWritable();                      
      BytesRefArrayWritable value = new BytesRefArrayWritable();                 
      int counter = 1;                            
      for (int i = 0; i < fileStatuses.length; i++)                     
      {                                
       FileStatus fileStatus = fileStatuses[i];                     
       if (!fileStatus.isDir())                         
       {                               
        System.out.println("File: " + fileStatus);                   
        FileSplit split = new FileSplit(fileStatus.getPath(), 0, fileStatus.getLen(), job);         
        RCFileRecordReader reader = new RCFileRecordReader(job, split);              
        while (reader.next(key, value))                      
        {                              
         System.out.println("Getting row " + counter);                                                       
         counter++;                          
        }                              
       }                               
      }                                                               
     }                                 
     catch (IOException e)                            
     {                                 
      throw new Error(e);                           
     } 
    } 

這讓我異常:

Exception in thread "main" java.lang.Error: java.io.IOException: file:/C:/Users/Desktop/fold/xyz.rc not a RCFile and has magic of I01 at Application.main(Application.java:119) Caused by: java.io.IOException: file:/C:/Users/Desktop/fold/xyz.rc not a RCFile and has magic of I01 at org.apache.hadoop.hive.ql.io.RCFile$Reader.init(RCFile.java:1269) at org.apache.hadoop.hive.ql.io.RCFile$Reader.(RCFile.java:1154) at org.apache.hadoop.hive.ql.io.RCFile$Reader.(RCFile.java:1133) at org.apache.hadoop.hive.ql.io.RCFileRecordReader.(RCFileRecordReader.java:102) at Application.main(Application.java:106)

請幫

+4

的可能的複製[如何在RCFile閱讀](http://stackoverflow.com/questions/25416114/how-to-read-in-a-rcfile) – Blobonat

+0

我檢查了你提到的問題,並沒有爲JobConf作業獲得可能的值 – vaishn

回答

0
FileInputStream inputStream = new FileInputStream("C:/Users/Desktop/fold/xyz.rc"); 
try { 
    String str = IOUtils.toString(inputStream); 
    System.out.println(str); 
} finally { 
    inputStream.close(); 
} 
相關問題