Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 生成从字符串或InputStream读取的进程_Scala - Fatal编程技术网

Scala 生成从字符串或InputStream读取的进程

Scala 生成从字符串或InputStream读取的进程,scala,Scala,我正在寻找一种更优雅的方式: 导入scala.sys.process_ (Seq(“回声”,“玛丽有一只小羊羔”)#|“代码-”)。!! 在bash中,我会: code-您没有包含您的InputStream尝试,因此很难知道这是否是您想要的(或者是否足够“优雅”) 导入scala.sys.process_ 导入scala.language.postfix操作 导入java.io.{ByteArrayInputStream=>BAIS} 导入java.nio.charset.StandardCh

我正在寻找一种更优雅的方式:

导入scala.sys.process_
(Seq(“回声”,“玛丽有一只小羊羔”)#|“代码-”)。!!
在bash中,我会:


code-您没有包含您的
InputStream
尝试,因此很难知道这是否是您想要的(或者是否足够“优雅”)

导入scala.sys.process_
导入scala.language.postfix操作
导入java.io.{ByteArrayInputStream=>BAIS}
导入java.nio.charset.StandardCharsets.UTF_8
val bais=new bais(“玛丽有一只小羊羔”\n.getBytes(UTF_8))
“代码-”#
有趣!当我看到你的答案时,我的第一反应是“胡,我不是已经尝试过了吗?”,事实上我已经做到了:
import scala.sys.process.\u;(“code-”/sighs/原来,我写了
(也因为发现了“\n”而备受赞誉,我在讨论是否应该在我的示例中使用“echo-n”而不仅仅是“echo”,但尤其是在这个问题上,我发现问题中的任何附加字符都会吸引人们对其进行掩饰,并给出一个没有帮助的答案。)我对指定编码的感觉很复杂。通常我是第一个向字符串处理中添加显式编码的人,但在这里,您必须知道被调用进程需要哪种编码。除非另有规定,否则这将是平台的默认字符集,不管是什么,当您没有显式设置e编码。换句话说:在与派生进程对话时显式指定字符集可能弊大于利。在测试时,我使用
wc
代替
code-
,并添加
\n
以获得与通过命令行看到的相同结果。我没有太多
InputStream
经验,所以我复制了从一个数据库中读取该代码。
import scala.sys.process._
import scala.language.postfixOps
import java.io.{ByteArrayInputStream => BAIS}
import java.nio.charset.StandardCharsets.UTF_8

val bais = new BAIS("Mary had a little lamb\n".getBytes(UTF_8))

"code -" #< bais !!