如何在java中读取.rc扩展名文件
我想用java读取.rc文件,并将其内容存储在hashmap中。 .rc ext文件是C/C++中使用的资源文件,我想用java开发应用程序。 请帮忙。提前谢谢如何在java中读取.rc扩展名文件,java,Java,我想用java读取.rc文件,并将其内容存储在hashmap中。 .rc ext文件是C/C++中使用的资源文件,我想用java开发应用程序。 请帮忙。提前谢谢 public static void main(String[] args){ try
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);
}
}
publicstaticvoidmain(字符串[]args){
尝试
{
JobConf job=newjobconf(newconfiguration(),Application.class);
FileSystem fs=FileSystem.get(作业);
FileStatus[]fileStatuses=fs.listStatus(新路径(“C:/Users/Desktop/fold/”);
LongWritable键=新的LongWritable();
BytesRefArrayWritable值=新的BytesRefArrayWritable();
int计数器=1;
for(int i=0;i
这给了我一个例外:
线程“main”java.lang中出现异常。错误:java.io.IOException:
文件:/C:/Users/Desktop/fold/xyz.rc不是RCFile,具有I01的魔力
在Application.main(Application.java:119)处,由以下原因引起:
java.io.IOException:文件:/C:/Users/Desktop/fold/xyz.rc不是RCF文件
并且有着I01的魔力
org.apache.hadoop.hive.ql.io.RCFile$Reader.init(RCFile.java:1269)位于
org.apache.hadoop.hive.ql.io.RCFile$Reader.(RCFile.java:1154)
在
org.apache.hadoop.hive.ql.io.RCFile$Reader.(RCFile.java:1133)
在
org.apache.hadoop.hive.ql.io.RCFileRecordReader.(RCFileRecordReader.java:102)
位于Application.main(Application.java:106)
请帮助可能重复我检查了你提到的问题,我没有得到JobConf作业可能的价值
FileInputStream inputStream = new FileInputStream("C:/Users/Desktop/fold/xyz.rc");
try {
String str = IOUtils.toString(inputStream);
System.out.println(str);
} finally {
inputStream.close();
}