我正在尝试从另一个将被排序的纯文本文件创建一个 CSV 文件,然后我尝试使用 BufferedReader 读取它。问题是它是同时运行还是先执行 AWK 部分然后读取..
AWK 文件创建部分:
String uniqueSubscribersCommand = "cat " + originalFile +
" | awk '$1~/^[0-9]*$/ {print $0}' | sort -k 1 | awk '{print $1}' | uniq >> " +
uniqueFile;
try
{
Runtime.getRuntime().exec( new String[]{"/bin/sh", "-c", uniqueSubscribersCommand} );
}
catch ( IOException e )
{
logger.error( "Error during unique subscriber determination" );
}
阅读部分,就在创作部分之后:
FileInputStream uniqueFis = new FileInputStream( uniqueFile );
BufferedReader brUnique = new BufferedReader( new InputStreamReader( uniqueFis ) );
while ( ( subscriberId = brUnique.readLine() ) != null )
{
// do stuff
}
我特别想知道如果我在运行 AWK 命令后立即让线程进入睡眠状态,那么 Java 是否可以在创建文件时读取文件,因此它会在创建和读取之间产生 10 秒的间隙。
谢谢你的建议!