Java读入文件解析输出Map
发布网友
发布时间:2022-04-29 04:30
我来回答
共2个回答
热心网友
时间:2023-10-11 16:24
你这Map<String, Map<String, Float>>没看明白,map里面还有个map?
一层map示例如下,两层map请说明白
import java.io.*;
import java.util.HashMap;
import java.util.Map;
public class Test
{
public static void main(String[] args) throws Exception
{
Map<String, Float> map = new HashMap<String, Float>();
// 如果你文件里没有中文,那个GBK编码就无所谓,否则要按实际编码来定
BufferedReader br =
new BufferedReader(new InputStreamReader(new FileInputStream(new File("d:/test.txt")), "GBK"));
String str;
while ((str = br.readLine()) != null)
{
// 如果分隔符不是空格,改成对应的分隔符,比如tab即"\t"
String[] strs = str.split(" ");
if (strs.length != 3)
{
System.out.println("格式错误:" + str);
}
try
{
map.put(strs[1], Float.parseFloat(strs[2]));
}
catch (NumberFormatException e)
{
e.printStackTrace();
}
}
}
}
追问是两层map 第一层是string和Map
第二层是string和对应的float。
举例子比如第一行里输出>
第二行就是>
......
不知道我说没说明白~
追答
看来我是理解错了,你只是要输出这种形式的字符串?
import java.io.*;
public class Test
{
public static void main(String[] args) throws Exception
{
// 如果你文件里没有中文,那个GBK编码就无所谓,否则要按实际编码来定
BufferedReader br =
new BufferedReader(new InputStreamReader(new FileInputStream(new File("d:/test.txt")), "GBK"));
String str;
while ((str = br.readLine()) != null)
{
// 如果分隔符不是空格,改成对应的分隔符,比如tab即"\t"
String[] strs = str.split(" ");
if (strs.length != 3)
{
System.out.println("格式错误:" + str);
}
System.out.println("Map<" + strs[1] + ", Map<" + strs[1] + ", " + strs[2] + ">>");
}
}
}
热心网友
时间:2023-10-11 16:25
你这个做出来了么?可否告知一下
热心网友
时间:2023-10-11 16:24
你这Map<String, Map<String, Float>>没看明白,map里面还有个map?
一层map示例如下,两层map请说明白
import java.io.*;
import java.util.HashMap;
import java.util.Map;
public class Test
{
public static void main(String[] args) throws Exception
{
Map<String, Float> map = new HashMap<String, Float>();
// 如果你文件里没有中文,那个GBK编码就无所谓,否则要按实际编码来定
BufferedReader br =
new BufferedReader(new InputStreamReader(new FileInputStream(new File("d:/test.txt")), "GBK"));
String str;
while ((str = br.readLine()) != null)
{
// 如果分隔符不是空格,改成对应的分隔符,比如tab即"\t"
String[] strs = str.split(" ");
if (strs.length != 3)
{
System.out.println("格式错误:" + str);
}
try
{
map.put(strs[1], Float.parseFloat(strs[2]));
}
catch (NumberFormatException e)
{
e.printStackTrace();
}
}
}
}
追问是两层map 第一层是string和Map
第二层是string和对应的float。
举例子比如第一行里输出>
第二行就是>
......
不知道我说没说明白~
追答
看来我是理解错了,你只是要输出这种形式的字符串?
import java.io.*;
public class Test
{
public static void main(String[] args) throws Exception
{
// 如果你文件里没有中文,那个GBK编码就无所谓,否则要按实际编码来定
BufferedReader br =
new BufferedReader(new InputStreamReader(new FileInputStream(new File("d:/test.txt")), "GBK"));
String str;
while ((str = br.readLine()) != null)
{
// 如果分隔符不是空格,改成对应的分隔符,比如tab即"\t"
String[] strs = str.split(" ");
if (strs.length != 3)
{
System.out.println("格式错误:" + str);
}
System.out.println("Map<" + strs[1] + ", Map<" + strs[1] + ", " + strs[2] + ">>");
}
}
}
热心网友
时间:2023-10-11 16:25
你这个做出来了么?可否告知一下
热心网友
时间:2023-10-11 16:25
你这Map<String, Map<String, Float>>没看明白,map里面还有个map?
一层map示例如下,两层map请说明白
import java.io.*;
import java.util.HashMap;
import java.util.Map;
public class Test
{
public static void main(String[] args) throws Exception
{
Map<String, Float> map = new HashMap<String, Float>();
// 如果你文件里没有中文,那个GBK编码就无所谓,否则要按实际编码来定
BufferedReader br =
new BufferedReader(new InputStreamReader(new FileInputStream(new File("d:/test.txt")), "GBK"));
String str;
while ((str = br.readLine()) != null)
{
// 如果分隔符不是空格,改成对应的分隔符,比如tab即"\t"
String[] strs = str.split(" ");
if (strs.length != 3)
{
System.out.println("格式错误:" + str);
}
try
{
map.put(strs[1], Float.parseFloat(strs[2]));
}
catch (NumberFormatException e)
{
e.printStackTrace();
}
}
}
}
追问是两层map 第一层是string和Map
第二层是string和对应的float。
举例子比如第一行里输出>
第二行就是>
......
不知道我说没说明白~
追答
看来我是理解错了,你只是要输出这种形式的字符串?
import java.io.*;
public class Test
{
public static void main(String[] args) throws Exception
{
// 如果你文件里没有中文,那个GBK编码就无所谓,否则要按实际编码来定
BufferedReader br =
new BufferedReader(new InputStreamReader(new FileInputStream(new File("d:/test.txt")), "GBK"));
String str;
while ((str = br.readLine()) != null)
{
// 如果分隔符不是空格,改成对应的分隔符,比如tab即"\t"
String[] strs = str.split(" ");
if (strs.length != 3)
{
System.out.println("格式错误:" + str);
}
System.out.println("Map<" + strs[1] + ", Map<" + strs[1] + ", " + strs[2] + ">>");
}
}
}
热心网友
时间:2023-10-11 16:25
你这个做出来了么?可否告知一下