ColdFusion OpenCSV 打开内存文件
ColdFusion OpenCSV open in-memory file
想象一下您需要即时解析的 CSV 文件。
它在本地磁盘存储中有效,但在 ram:/// 中无效
<cfscript>
cfhttp(
method = "Get",
url = "http://real-chart.finance.yahoo.com/table.csv?s=YHOO&d=4&e=2&f=2016&g=d&a=3&b=12&c=2016&ignore=.csv",
//path = "C:\CFTemp",
path = "ram:///",
file = "currentCSV.csv"
);
cfdirectory(
name="files",
action="list",
directory="ram:///",
recurse="true",
type="all"
);
writeDump(files);
myfile = FileRead("ram:///currentCSV.csv");
WriteOutput("#myfile#");
fileReader = createobject("java","java.io.FileReader");
fileReader.init("ram:///currentCSV.csv"); // -ERROR
csvReader = createObject("java","com.opencsv.CSVReader");
csvReader.init(fileReader, ",");
ArrayData = csvReader.readAll();
writeDump(ArrayData);
</cfscript>
-ERR ram:/currentCSV.csv(文件名、目录名或卷标语法不正确)
这里有什么问题吗?
ColdFusion 11、OpenCSV 3.7
VFS 或 "ram:///" 是一种仅适用于 ColdFusion 函数的 CF 结构。 FileReader is a java class that does not know anything about VFS. AFAIK, its constructor only accepts a standard file path,即 c:/path/file.txt。
想象一下您需要即时解析的 CSV 文件。
它在本地磁盘存储中有效,但在 ram:/// 中无效
<cfscript>
cfhttp(
method = "Get",
url = "http://real-chart.finance.yahoo.com/table.csv?s=YHOO&d=4&e=2&f=2016&g=d&a=3&b=12&c=2016&ignore=.csv",
//path = "C:\CFTemp",
path = "ram:///",
file = "currentCSV.csv"
);
cfdirectory(
name="files",
action="list",
directory="ram:///",
recurse="true",
type="all"
);
writeDump(files);
myfile = FileRead("ram:///currentCSV.csv");
WriteOutput("#myfile#");
fileReader = createobject("java","java.io.FileReader");
fileReader.init("ram:///currentCSV.csv"); // -ERROR
csvReader = createObject("java","com.opencsv.CSVReader");
csvReader.init(fileReader, ",");
ArrayData = csvReader.readAll();
writeDump(ArrayData);
</cfscript>
-ERR ram:/currentCSV.csv(文件名、目录名或卷标语法不正确)
这里有什么问题吗?
ColdFusion 11、OpenCSV 3.7
VFS 或 "ram:///" 是一种仅适用于 ColdFusion 函数的 CF 结构。 FileReader is a java class that does not know anything about VFS. AFAIK, its constructor only accepts a standard file path,即 c:/path/file.txt。