读取管道分隔文件时导致问题的Java Null值
我需要读取管道分隔文件并填充它 在字符串数组中,将其作为列表传回并进行进一步处理 下面 如果在所有管道定界(至少一个空间)中都有可用的数据,则此操作可以正常工作, 但是对于管道之间的空值 有26个属性,只要有NULL,数组索引就不为空 从NULL可用的基数开始递增。比如说,当第12个管道上有一个空值时,数组直到25才填充,它在12处停止,这是我进一步处理中的装箱问题 并且该文件可以同时具有NULL和空格。你能帮我解决这个问题吗读取管道分隔文件时导致问题的Java Null值,java,arrays,string,Java,Arrays,String,我需要读取管道分隔文件并填充它 在字符串数组中,将其作为列表传回并进行进一步处理 下面 如果在所有管道定界(至少一个空间)中都有可用的数据,则此操作可以正常工作, 但是对于管道之间的空值 有26个属性,只要有NULL,数组索引就不为空 从NULL可用的基数开始递增。比如说,当第12个管道上有一个空值时,数组直到25才填充,它在12处停止,这是我进一步处理中的装箱问题 并且该文件可以同时具有NULL和空格。你能帮我解决这个问题吗 public List<String[]> readFi
public List<String[]> readFile(String FileName) {
final List<String[]> userList = new ArrayList<String[]>();
BufferedReader bufferedreader = null;
try {
int i=0;
bufferedreader = new BufferedReader(new FileReader(FileName));
String line = null;
while ((line = bufferedreader.readLine()) != null) {
final String[] values = line.split("\\|");
userList.add(values);
}
}
catch (FileNotFoundException ex) {
CTLoggerUtil.logError(ex.getMessage());
}
catch (IOException ex) {
CTLoggerUtil.logError(ex.getMessage());
}
finally {
try {
if (bufferedreader != null)
{
bufferedreader.close();}
}
catch (IOException ex) {
CTLoggerUtil.logError(ex.getMessage());
}
}
return userList;
}
公共列表读取文件(字符串文件名){
最终列表userList=new ArrayList();
BufferedReader BufferedReader=null;
试一试{
int i=0;
bufferedreader=新的bufferedreader(新文件读取器(文件名));
字符串行=null;
而((line=bufferedreader.readLine())!=null){
最终字符串[]值=line.split(“\\\\”);
添加(值);
}
}
捕获(FileNotFoundException ex){
CTLoggerUtil.logError(例如getMessage());
}
捕获(IOEX异常){
CTLoggerUtil.logError(例如getMessage());
}
最后{
试一试{
if(bufferedreader!=null)
{
bufferedreader.close();}
}
捕获(IOEX异常){
CTLoggerUtil.logError(例如getMessage());
}
}
返回用户列表;
}
默认情况下,String.split()
丢弃空的尾随字符串。如果设置了负限制,则也将返回所有空结果:
final String[] values = line.split("\\|", -1);
默认情况下,
String.split()。如果设置了负限制,则也将返回所有空结果:
final String[] values = line.split("\\|", -1);
String.split()的文档说明,连续的定界符不作为一个定界符。您能检查一下拆分后的values.length是什么吗?String.split()的文档说,连续的定界符不作为一个定界符。你能检查一下分割后的长度值吗?谢谢,这很有效。这正是我想要的。也有空格代替空值。有什么方法可以将输入中的null保留为null,将输入中的空格保留为空格,还是不可能?非常感谢您对上述方法的帮助。您的数组将包含“”作为空格,包含“”(空字符串)作为空值。所以你可以区分两者。如果您的问题是拆分是否可以为每个空值(而不是空字符串)在数组中实际放置空值,那么我认为答案是否定的。谢谢您的帮助。这正是我想要的。也有空格代替空值。有什么方法可以将输入中的null保留为null,将输入中的空格保留为空格,还是不可能?非常感谢您对上述方法的帮助。您的数组将包含“”作为空格,包含“”(空字符串)作为空值。所以你可以区分两者。如果您的问题是拆分是否可以为每个空值(而不是空字符串)在数组中放置null,那么我认为答案是否定的。