我有一个问题,我有一个方法从AngularJs前端获取参数,用它们创建一个对象,将对象作为XML文件写入文件夹,然后应该编写该XML将文件存入MarkLogic数据库。
但是,它应该写入数据库的部分看起来好像文件不存在,即使它确实存在:
以下是代码:
rates_food_x = [(row[0], row[1]) for index,row in
try_impression_surface_rates_food.iterrows()]
rates_food_y = try_impression_surface_rates_food.loc[:,'rate'].tolist()
source_sr_food = ColumnDataSource(data=dict(x=rates_food_x, y=rates_food_y))
chart_sr_food = figure(x_range=FactorRange(*rates_food_x),
plot_width=400, plot_height=350, tools=[hover_sr_food],
title='Impression Distribution by Surface - Food')
chart_sr_food.left[0].formatter.use_scientific = False
chart_sr_food.yaxis.axis_label = "Distribution %"
chart_sr_food.xaxis.axis_label = "Surface"
chart_sr_food.yaxis[0].formatter = PrintfTickFormatter(format="%0.0f %%")
chart_sr_food.legend.orientation = "horizontal"
chart_sr_food.legend.location = "top_center"
chart_sr_food.xaxis.major_label_orientation = 'vertical'
chart_sr_food.vbar(x='x', top='y', source=source_sr_food, width=0.6,
fill_color=factor_cmap('x', palette=Spectral6,
factors=list(set(try_impression_surface_rates_food['var'])), start=1, end=2))
show(chart_sr_food)
答案 0 :(得分:2)
几个问题。
首先,您写入的文件与您阅读的文件不同。您正在写入“src / main / resources / data / korisnici / ..”,它相对于JVM(应用程序服务器)的当前目录。您正在从类路径资源目录中读取 - 不太可能是相同的。您可以简单地重复使用相同的File对象,然后它们将是相同的。
其次,您不需要将这个小对象写入磁盘,只需将其写入内存中的流(如ByteArrayStream()
)即可。
答案 1 :(得分:0)
听起来好像类加载器没有找到你的文件。
如果您已经有一个刚刚编写的File
对象,为什么不从它构造InputStream
,而不是尝试从不同构造的相对路径中找到它?
InputStream docStream = new FileInputStream(f);