Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.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
Java 将文件内容作为方法参数传递(例如字符串)_Java_Apache Commons_Java Io - Fatal编程技术网

Java 将文件内容作为方法参数传递(例如字符串)

Java 将文件内容作为方法参数传递(例如字符串),java,apache-commons,java-io,Java,Apache Commons,Java Io,我正在开发一个库,它将文件作为InputStreamReader Reader fileReader = new InputStreamReader(new FileInputStream(new File("inputFile"),"UTF-8"); instances.addThruPipe(new CsvIterator(fileReader, Pattern.compile("^(\\S*)[\\s,]*(\\S*)[\\s,]*(.*)$"), 3, 2, 1)); 我有另一个方法

我正在开发一个库,它将文件作为
InputStreamReader

Reader fileReader = new InputStreamReader(new FileInputStream(new File("inputFile"),"UTF-8");

instances.addThruPipe(new CsvIterator(fileReader, Pattern.compile("^(\\S*)[\\s,]*(\\S*)[\\s,]*(.*)$"), 3, 2, 1));
我有另一个方法,它在文件“inputFile”(一个选项卡分隔的文件)中创建数据

是否可以完全摆脱物理文件创建过程并将文件作为参数传递

String source = "This is the source of my input stream";
InputStream in = IOUtils.toInputStream(source, "UTF-8");

如果我可以使用上述方法,那么在创建这样的字符串时如何处理“\t”和“\n”?

我建议让您的API将
读取器作为其输入参数

现在,调用方负责创建
读取器
——它可以是
文件读取器
,也可以是
InputStreamReader
——您的库不需要关心

您的库可以继续从
读取器构建
CsvIterator
,就像当前一样


对于测试,您可以通过
StringReader
。在生产代码中,调用者可以从文件、套接字、stdin中生成一个
读取器
——不管它喜欢什么。

我建议让API将
读取器
作为其输入参数

现在,调用方负责创建
读取器
——它可以是
文件读取器
,也可以是
InputStreamReader
——您的库不需要关心

您的库可以继续从
读取器构建
CsvIterator
,就像当前一样


对于测试,您可以通过
StringReader
。在生产代码中,调用方可以从文件、套接字、,stdin——随意。

您正在将字符串源保存到文件中,那么为什么不直接传递字符串,而不是创建文件并传递文件呢方法是什么?您不能重复使用以前文件中已经创建的数据吗?
inputFile
大约有500行显示您将使用该方法创建的大量数据?你不能重复使用先前文件中已经创建的数据吗?
inputFile
大约有500行。当我们将参数作为字符串传递时,我们会处理制表符和新行吗。字符串保存时将被传递,就像字符串a=“ginger apple”将被传递为“ginger apple”当我们将参数作为字符串传递时,如何处理制表符和新行。保存字符串时,字符串将被传递,就像string a=“ginger apple”将被传递为“ginger apple”一样