我的爷爷得到了一个新的像素2. Google智能助理存在一些小问题,即使它们的格式有效,也无法在联系人CSV中以某种方式格式化数字。 IPhone使用(xxx)xxx-xxxx格式,而Google只使用xxxxxxxxxx。无论如何,我以为我会雄心勃勃,并且因为我正在学习java而快速修改脚本。 CSV文件使用Cp1252字符集,换行符为0D,0A。我尝试过以几种不同的方式添加它们。我的问题是我的FOS要么在附加文件时不添加新行,要么我手动添加新行,然后在我手动添加的行之上添加另一个新行。我的代码中的一些奇怪的东西,比如转换为十六进制,是因为我疯狂地尝试了一切,只能添加一行。我检查了十六进制而没有添加换行符,结果是没有换行符00 00 00
,当我添加换行符时,每行以十六进制00 0D 00 0A 00 0D 00 0A
2换行结束,我真的不知道为什么
下面的文件编写类代码:
package reformat;
import java.io.FileOutputStream;
import java.io.File;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Arrays;
import javax.xml.bind.DatatypeConverter;
public class WriteFile {
private final File file;
WriteFile(String fName){
System.setProperty("line.separator", "\u0000");
file = new File(fName);
try {
file.createNewFile();
}
catch(IOException e){
e.printStackTrace();
}
}
public void writeF(String line){
//fix new line pattern for csv
byte[] lineStream = line.getBytes(Charset.forName("Cp1252"));
lineStream = Arrays.copyOf(lineStream, lineStream.length +1);
line = new String(DatatypeConverter.printHexBinary(lineStream));
line = new String(line.substring(0, line.length()-4));
line = new String(line + "000D000A");
//System.out.println(line);
lineStream = DatatypeConverter.parseHexBinary(line);
try {
FileOutputStream fos = new FileOutputStream(file, true);
fos.write(lineStream);
fos.close();
//System.exit(0);
}
catch(IOException e){
e.printStackTrace();
}
}
}