我正在读取和验证存储在 springboot 中的 .csv 文件中的数据。我能够获取 .csv 文件的内容。此外,我想验证存储在文件中的数据,因为除了文件内容之外,我还需要一些额外的属性。如果我从网页上传文件,我可以看到所需的额外属性。但是如果我从邮递员上传文件只有文件内容而不是其他必需的属性。它的迁移工作是我将代码从 .net 迁移到 java 的地方。如果我通过 .NET Web 上传文件,我会得到以下内容,其中包括 .csv 文件内容和其他属性,但是在通过邮递员在 Java 中开发相同内容时,我可以看到在红线下突出显示的 .csv 文件的内容。
为了验证 .csv 数据,我使用下面的 Java 代码,包括正则表达式。
public class MultipartParser {
// private static final Logger logger = LogManager.getLogger(MultipartParser.class);
public boolean success = false;
public String name;
public String variableType;
public String taxelid;
public String text;
public String contentType;
public String fileName;
public boolean ignoreFirstLine;
public MultipartParser(){}
public MultipartParser(MultipartFile stream){
this.parse(stream);
}
public void parse(MultipartFile stream) {
///logger.info("Inside parser");
try {
String content = new String(stream.getBytes(), StandardCharsets.UTF_8);
System.out.println("CONTENT::"+content);
int delimiterEndIndex = content.indexOf("\r\n");
if (delimiterEndIndex > -1)
{
String delimiter = content.substring(0, content.indexOf("\r\n"));
// Look for Content-Type
Pattern re = Pattern.compile("(?<=Content\\-Type:)(.*?)(?=\r\n\r\n)");
Matcher contentTypeMatch = re.matcher(content);
// Look for filename
re = Pattern.compile("(?<=filename\\=\"\")(.*?)(?=\"\")");
Matcher filenameMatch = re.matcher(content);
// Look for variable
re = Pattern.compile("(?<=name\\=\"\"variable\"\"\r\n\r\n)(.*?)(?=\r\n)");
Matcher variableMatch = re.matcher(content);
re = Pattern.compile("(?<=name\\=\"\"taxelid\"\"\r\n\r\n)(.*?)(?=\r\n)");
Matcher taxelidMatch = re.matcher(content);
// Look for name
re = Pattern.compile("(?<=name\\=\"\"cgname\"\"\r\n\r\n)(.*?)(?=\r\n)");
Matcher cgnameMatch = re.matcher(content);
re = Pattern.compile("(?<=name\\=\"\"text\"\"\r\n\r\n)(.*?)(?=\r\n)");
Matcher cgtextMatch = re.matcher(content);
if (contentTypeMatch.matches() && filenameMatch.matches()){
this.variableType = variableMatch.group();
this.ignoreFirstLine = true;
this.name = cgnameMatch.group();
this.taxelid = taxelidMatch.group();
this.text = cgtextMatch.group();
this.success = true;
}
}
} catch (Exception e) {
//logger.error("Error whilr reading Multipart file:"+e.getMessage());
e.printStackTrace();
}
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getVariableType() {
return variableType;
}
public void setVariableType(String variableType) {
this.variableType = variableType;
}
public String getTaxelid() {
return taxelid;
}
public void setTaxelid(String taxelid) {
this.taxelid = taxelid;
}
public String getText() {
return text;
}
public void setText(String text) {
this.text = text;
}
public String getContentType() {
return contentType;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
public String getFileName() {
return fileName;
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
public boolean isIgnoreFirstLine() {
return ignoreFirstLine;
}
public void setIgnoreFirstLine(boolean ignoreFirstLine) {
this.ignoreFirstLine = ignoreFirstLine;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
}
任何人都可以告诉我如何在 Postman 中获取文件内容以外的其他属性,或者我需要做哪些设置 Postman 获取其他属性需要通过正则表达式。
帆船赛, 普拉巴什