fileOutputStream.write(0xef); fileOutputStream.write(0xbb); fileOutputStream.write(0xbf);
时间: 2023-06-16 16:08:22 浏览: 165
这三行代码是在写入UTF-8文件的开头添加BOM(Byte Order Mark)标记。BOM标记是为了帮助标识文本文件的编码方式,它是由三个字节组成的特殊字符,即0xEF、0xBB、0xBF。在UTF-8编码中,BOM标记是可选的,但是有一些应用程序可能需要它来正确地解析文件。如果你不需要在文件开头添加BOM标记,可以不写这三行代码。
相关问题
String filename = encodingFilename("订单导出"); FileOutputStream fileOutputStream = new FileOutputStream(getAbsoluteFile(filename)); //追加BOM标识 fileOutputStream.write(0xef); fileOutputStream.write(0xbb); fileOutputStream.write(0xbf); fileOutputStream.write(str.toString().getBytes(StandardCharsets.UTF_8));通过该方法将字符串写入EXCEl报错
报错的具体信息是什么?这段代码看起来是将字符串写入文件而不是 Excel 文件,你确定你想要将字符串写入 Excel 文件吗?如果是的话,你需要使用 Excel 文件的 API 来进行操作,比如 Apache POI。另外,如果你想要将字符串写入文件,建议使用 Writer 而不是 OutputStream,因为 Writer 会自动进行字符编码转换。例如:
```java
String filename = encodingFilename("订单导出");
FileWriter writer = new FileWriter(getAbsoluteFile(filename));
writer.write("\uFEFF"); // 写入 BOM 标识
writer.write(str.toString()); // 写入字符串
writer.close();
```
这里使用了 FileWriter 来将字符串写入文件,并在开头写入了 BOM 标识。注意,BOM 标识只有在使用 UTF-8 编码时才有意义。
fileoutputstream.write
FileOutputStream.write() 方法用于将给定的字节写入文件输出流。这个方法会将给定的字节写入到文件中,如果文件不存在,会自动创建。如果文件已经存在,写入的内容会覆盖原来的内容。
语法:
public void write(int b) throws IOException
参数:
b - 要写入的字节。
返回值:
此方法没有返回值。
例子:
FileOutputStream fos = new FileOutputStream("test.txt");
fos.write(65);
fos.close();
上面的代码会在当前目录下创建一个名为 "test.txt" 的文件,并将字符'A'的ASCLL码值65写入文件中。
阅读全文