2
File outputFile = new File(path, clickedKey+".txt");
OutputStream fos = new FileOutputStream(outputFile);
fos.write(data.getBytes());
fos.close();

当路径不包含以下字符时,这段代码有效:“ąóźżę”(波兰语中的特殊字符)。如果路径包含其中任何一个fos.write有效但没有效果(新文件不是使用“外来”路径名创建的,但路径存在)。我的问题是:我能做些什么来解决它?

“Astro”、“文件管理器”等文件管理器应用程序可以毫无问题地使用这些字符。

我也试试这个:

Charset charset = Charset.forName("UTF-8");
CharsetEncoder encoder = charset.newEncoder();
CharsetDecoder decoder = charset.newDecoder();

ByteBuffer bbuf = encoder.encode(CharBuffer.wrap(clickedKey+".txt"));
CharBuffer cbuf = decoder.decode(bbuf);
String s = cbuf.toString();

bbuf = encoder.encode(CharBuffer.wrap(path));
cbuf = decoder.decode(bbuf);
String path_s = cbuf.toString();

File outputFile = new File(path_s, s);
OutputStream fos = new FileOutputStream(outputFile);
fos.write(tab.getBytes());
fos.close();

但它也不起作用。

4

2 回答 2

2

当我的手机通过 ADB 连接并且我正在使用 DDMS 检查新文件时,“外部”路径上没有任何文件。但事实上,文件在手机里!

我检查了它,直接在我的手机中使用文件管理器:) 这很奇怪。但我解决了这个问题。

于 2011-08-27T16:07:23.860 回答
0

你检查编码了吗?在 Eclipse 中:编辑 > 设置编码 > utf-8 或 16

于 2011-08-26T13:02:56.700 回答