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”一样