.txt
朋友们怎么样,我正在开发一个应用程序,该应用程序生成一个文本文件(在手机上查看相同文件时,如果它有换行符,则会出现在一行中。
这是我用来连接并保存到文本文件的代码:
BufferedWriter fileWritter = new BufferedWriter(new FileWriter("/sdcard/arhivos/"+currentDate)); //ubicacion y nombre del archivo
while(c.moveToNext()){
registros = String.format(codigoReloj + c.getString(0).toString() + c.getString(1).toString().replace("/", "") + c.getString(2).toString().replace(":", "")+"\n");
fileWritter.append( registros );
fileWritter.flush();
registros = "";
}
fileWritter.close();
这是我用来发送文件的代码
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("message/rfc822");
emailIntent.setData(Uri.parse("mailto:"));
emailIntent.putExtra(Intent.EXTRA_EMAIL, to);
emailIntent.putExtra(Intent.EXTRA_CC, cc);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, asunto);
emailIntent.putExtra(Intent.EXTRA_TEXT, mensaje);
emailIntent.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://"+"/storage/sdcard0/archivos/"+ asunto));
emailIntent.setType("text/plain"); //indicamos el tipo de dato
startActivity(Intent.createChooser(emailIntent, "Email "));
我已经尝试使用以下方法生成文件:
writer.newLine();
System.getProperty("line.separator");
String.format("%n");
使用这些选项,换行符会显示在手机上,发送并在 PC 上查看文件后,文本会显示在一行中。
这似乎是与换行符的不同表示有关的问题,具体取决于操作系统。根据换行 - 维基百科(强调添加):
通常,换行符表示为:
\n
=LF
(换行)在 Unix 中用作换行符。\r
=CR
(回车) 在 Mac OS 中用作换行符。\r\n
=LF
CR
在 Windows 和 MS-DOS 中用作换行符。当你提到:
因此,假设 PC 是指 Windows 计算机,则要使用的换行符是
\r\n
. 换句话说:*────────
* 在这个小例子中,
registros
它不能包含\r
or\n
。建议您在单独调用.append
. 此外,为了提高性能,还建议flush
在关闭Writer
.您可以尝试使用或使用类似于以下内容的东西,它可能是您正在寻找的东西:
.
我的建议是您始终以 windows 换行格式保存,因为支持 windows 到 linux,但如果您以 linux 格式保存,则不保存。
有了这个,您将避免从一个数据转换到另一个,只需始终保存为 Windows 格式。
无论如何,使用此代码,您可以将 Linux Lines 转换为 Windows Lines
离开:
你可以在这里在线尝试
如果您想在 Android 的情况下在电子邮件文本中添加换行符(因为我看到您使用 Intent),则经常使用
line break <br>
产生换行符和回车符的 html 标记。而不是\n
using<br>
,您也可以将其添加到每行的末尾,而是在调用 .append() 时添加它:所以在发送电子邮件时:
并在客户端接收它,您的消息将由换行符组成,而不是单行,此图像显示了文本在移动设备或 PC 上的外观。
* 请务必注意,某些电子邮件客户端会过滤 html 内容。