我正在尝试使用Java读取CSV文件.一些文件在开头可能有一个字节顺序标记,但不是全部.当存在时,字节顺序与第一行的其余部分一起被读取,从而导致字符串比较出现问题.
是否有一种简单的方法可以跳过字节顺序标记?
谢谢!
我得到用户输入,包括非ASCII字符和不可打印的字符,例如
\xc2d
\xa0
\xe7
\xc3\ufffdd
\xc3\ufffdd
\xc2\xa0
\xc3\xa7
\xa0\xa0
Run Code Online (Sandbox Code Playgroud)
例如:
email : abc@gmail.com\xa0\xa0
street : 123 Main St.\xc2\xa0
Run Code Online (Sandbox Code Playgroud)
期望的输出:
email : abc@gmail.com
street : 123 Main St.
Run Code Online (Sandbox Code Playgroud)
使用Java删除它们的最佳方法是什么?
我试过以下,但似乎没有用
public static void main(String args[]) throws UnsupportedEncodingException {
String s = "abc@gmail\\xe9.com";
String email = "abc@gmail.com\\xa0\\xa0";
System.out.println(s.replaceAll("\\P{Print}", ""));
System.out.println(email.replaceAll("\\P{Print}", ""));
}
Run Code Online (Sandbox Code Playgroud)
产量
abc@gmail\xe9.com
abc@gmail.com\xa0\xa0
Run Code Online (Sandbox Code Playgroud) 如果我写这个代码,我把它作为输出 - >首先:然后是其他行
try {
BufferedReader br = new BufferedReader(new FileReader(
"myFile.txt"));
String line;
while (line = br.readLine() != null) {
System.out.println(line);
}
br.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
我怎么能避免呢?
使用MongoDB Java驱动程序库有一种方法可以将bson对象的写入流式传输到文件,然后再从该文件中流式读取bson对象.查看文档,我没有看到如何将一系列bson对象编码到类似于文件中具有一系列json对象的文件.