是否有与C++的“\n”等效的Dart?
在下面的示例中:
for(int j=0;j<readLines.length;j++)
{
outputFile.writeAsStringSync(readLines[j], mode: FileMode.APPEND);
}
字符串
我想将“readLines[j]”中的文本分隔成单独的行。如何做到这一点?
举例来说:
readLines是一个字符串列表,它包含:“嘿,我的名字是Cheshie”,和“谢谢大家的帮助”。
在上面的代码中,我试图使用“outputFile”将列表的内容写入一个文件,我希望它按如下方式编写:
- 嘿,我的名字是切西 *
- 谢谢你们的帮助 *
也就是说,每个readLines[j]都应该写在单独的行中。
谢谢.
代码:
import 'dart:io';
void func (String foldername)
{
Directory thisFolder = new Directory (foldername);
List<File> files = thisFolder.listSync(recursive:false);
int number=1;
String oldContent='';
String newContent='';
String concatenate='';
String name='';
int nameStart;
int nameLength;
for (int i=0; i<files.length; i++)
{
if (files[i].name.endsWith('.in'))
{
oldContent=files[i].readAsStringSync(Encoding.UTF_8);
newContent=number.toString();
var Strings=[newContent, oldContent];
concatenate=Strings.join();
files[i].writeAsStringSync(concatenate);
number++;
}
型
//=* 相关部分开始 *=
nameLength=files[i].name.length;
nameStart=files[i].name.lastIndexOf('\\', nameLength);
name=files[i].name.slice(nameStart+1, nameLength);
if (name.compareTo('hello.in')==0)
{
File outputFile=new File('hello.out');
if (outputFile.existsSync())
{
outputFile.deleteSync();
}
outputFile.createSync();
List<String> readLines=files[i].readAsLinesSync(Encoding.UTF_8);
for(int j=0;j<readLines.length;j++)
{
outputFile.writeAsStringSync('$readLines[j]\n', mode: FileMode.APPEND);
//outputFile.writeAsStringSync('\n', mode: FileMode.APPEND);
// TODO: figure out how to get to the next line.
if (readLines[j].contains('you'))
print(readLines[j]);
}
}
}
}
void main ()
{
func('In files');
print('the end!');
}
型
6条答案
按热度按时间g9icjywg1#
\n
不是C++特定的,您可以在将其写入文件之前将其添加到字符串的末尾。字符串
gmxoilav2#
在当前版本中,它可以工作。
字符串
控制台:
型
j2cgzkjk3#
readLines[j]
的内容是什么?一堆字?假设如下:
字符串
假设您要输出以下内容:
型
试试这个:
型
pgpifvop4#
它在Windows上不起作用,因为你只使用
\n
,这是换行(LF)字符。要在Windows中获得一个新行,你需要使用\r\n
回车+换行(CRLF)。有关此方面的更多信息,请访问https://en.wikipedia.org/wiki/Newline#Representation
我已经看到了Windows 10和旧版本之间的一些差异。我不知道这是否与Windows本身或Dart为每个版本编译的方式有关。它需要更多的调试才能理解...
de90aj5v5#
下面这句话对我很管用:
字符串
这里
data
是你要写字符串,\r
会把光标移到下一行。4xrmg8kj6#
Dart 3.2.0引入了
Platform.lineTerminator
,它可以用来获得适合操作系统的终止符。