Tag: 文件

Java Web Start应用程序可以从本地系统读取文件,但不能写入

请询问您是否需要更多信息。 我在jnlp中有安全性和所有权限标签,当我运行我的java应用程序离线时,它可以正常工作。 File T = new File(System.getProperty(“user.home”) + File.separator + “.myapp/”); if(!T.exists()) T.mkdirs(); File[] temp=new File[2]; temp[0] = new File(System.getProperty(“user.home”) + File.separator + “.myapp”+File.separator+”temp1.txt”); temp[1] = new File(System.getProperty(“user.home”) + File.separator + “.myapp”+File.separator+”temp2.txt”); writer=new BufferedWriter(new FileWriter(temp[x])); writer.write(finalData); writer.close(); 我使用以下方法写入我想在用户系统的目录中创建的文件。 在程序中,我也从同一个文件夹中读取,当我将测试数据放在该文件夹中时,它可以正常工作。 当我删除temp1.txt和temp2.​​txt文件时,它不会读取任何数据。 没有出现任何错误消息。 重申一下,当在java web start中运行时,弹出窗口并且程序正确运行而没有错误消息,但是它没有正确地将文件写入用户系统。 同时,当在.txt文件中提供测试数据时,它会正确读取。 编辑:如果可能的话,有没有使用某些javaw.jnlp。*方法的解决方案? 该程序实际上必须有一个文件夹,其中包含.txt文件 edit2:我的所有jar子也都签了

在Java中获取文件属性

给定表示.exe文件的java.io.File ,如何发现文件属性 – 例如:创建的大小和日期,以及如何发现可执行属性中的数据 – 例如:文件版本?

将FileItem转换为File

我正在尝试使用简单的上传html表单上传XML文件(text.xml),定期在servlet中将其作为FileItem读取,然后获取ACTUAL文件(text.xml),以便我可以打印,保存等。是否有任何受过良好教育的方式来做到这一点? 有人告诉我使用FileItem的属性getInputStream ..有什么例子吗? 是不是有一个更短的方式? 谢谢

从文件中找到重复的1kb块

TL; DR:如何从一个很大的文件中识别重复的非重叠1kb块,也可以是二进制文件? 我最近在其中一个挑战中遇到了这个问题。 我们有一个文件名。 该文件的大小将是1kb的倍数。 我们必须对此文件执行重复数据删除操作,并将修改后的内容写入另一个文件。 重复数据删除操作从文件中查找并删除重复的,不重叠的1kb块。 该文件可以是非常大的文件,也可以是二进制文件。 问题的第二部分涉及反转重复数据删除操作并从重复数据删除的文件重新生成原始文件。 我的方法:我尝试使用Adam Horwath的博客中建议的哈希。 我计算了每个1kb字节数据的散列,并将其存储在散列表中,散列作为键,并将块的索引作为值考虑。 这是我的代码来计算1kb数据的哈希值(类似于博客中的inithash): //implement hashing used in Rabin-Karp algorithm // sum of p^n * a[x] //hconst = 69069; //good multiplier for mod 2^32; public static long calculateHash(int [] data, int chunkSize){ long hash = 1; for(int i =0; i < chunkSize; i++) { int c […]

Java PrintWriter FileNotFound

我在写入txt文件时遇到问题。 我得到一个FileNotFoundexception,但我不知道为什么因为该文件肯定是存在的。 这是代码。 import java.io.FileNotFoundException; import java.io.PrintWriter; import java.io.File; public class Save { public static void main(String[] args) { File file = new File(“C:/Users/Daniel/Desktop/Programs/Save Data Test/save.txt”); PrintWriter pw = new PrintWriter(file); pw.println(“Hello World”); pw.close(); } }

“目录优先”命令的比较器

我很难过……假设我有这个目录树: {someRoot}/ {someRoot}/bar/ {someRoot}/bar/file1.txt {someRoot}/foo/ {someRoot}/foo/baz/ {someRoot}/foo/baz/file3.txt {someRoot}/foo/abracadabra.txt {someRoot}/foo/file2.txt {someRoot}/aardvark.txt {someRoot}/food.txt {someRoot}/zebra.txt 你会注意到订购。 叫这个订单1 。 在每个阶段,目录首先出现在文件之前。 ( 注意: bar/file1.txt在foo之前出现,因此在全局范围内,目录并非都在所有文件之前。) 如果我枚举这个目录树,然后递归枚举子目录,我将得到以下List ,订购order2 。 {someRoot}/ {someRoot}/aardvark.txt {someRoot}/bar/ {someRoot}/foo/ {someRoot}/food.txt {someRoot}/zebra.txt {someRoot}/bar/file1.txt {someRoot}/foo/abracadabra.txt {someRoot}/foo/baz/ {someRoot}/foo/file2.txt {someRoot}/foo/baz/file3.txt 如果我创建简单的Comparator : Comparator fc = new Comparator(){ @Override public int compare(File o1, File o2) { return o1.compareTo(o2); } }; 我排序,我从词典排序得到这个排序( order3 ): […]

如何读取文本文件中字符串数据的特定位置

我正在处理一个包含多达一千行的文本文件。 一个文本文件中有多个页眉和页脚。 所以我不需要处理包含@h和@f的行。 它告诉我事务的开始和结束(数据库事务,我将在一个事务中将这些记录保存到DB)。 样本记录如下。 虽然这条线达到了一千行而且列数达到了40列。 从每一行我只寻找一个特定的数据,即(例如,我需要从位置8到30,从位置60到67年等等获得名称)。 该位置可能是下一个空格或字符串之间。 所以我不想把每一行的数据放到缓冲区/内存中来处理它,因为我只对它们中的一些感兴趣。 CSV文件是否允许从一行中的特定位置获取数据? 我应该使用什么来获得更好的性能(尽可能快地处理数据而不占用太多内存。)? 我正在使用Java @h Header @074VH01MATT TARA A5119812073921 RONG HI DE BET IA76200 201108222 0500 * @074VH01KAYT DJ A5119812073921 RONG DED CR BET IA71200 201108222 0500 * @f Footer @h Header @074VH01MATT TARA A5119812073921 RONG HI DE BET IA76200 201108222 0500 * @074VH01KAYT DJ A5119812073921 RONG […]

Java读取文件,如果不存在则创建它

这是我的代码 public String path; public String fileName; public static void readData() throws IOException{ try { path=”myPath” fileName=”myFileName”; fstream = new FileInputStream(path+fileName); br = new BufferedReader(new InputStreamReader(fstream)); //do something…// } br.close(); } catch (FileNotFoundException ex) { JOptionPane.showMessageDialog(null, “Reading file error”); Logger.getLogger(LeggiDaFile.class.getName()).log(Level.SEVERE, null, ex); } } 我想知道如何检查fstream是否存在。 如果它不存在,则必须创建新文件。 我怎样才能做到这一点? 谢谢

Android Java – 反序列化Android平台上的文件

我有一个jave程序,它序列化存储和稍后读取的文件。 所以我采用序列化文件并尝试使用我在Java SE中使用的完全相同的代码在我的Android手机上(在Eclipse中工作)读取它们: FileInputStream fis = null; try { fis = new FileInputStream(“iwastedahalfhouronthis.ser”); } catch (FileNotFoundException ex) { } 抛出FileNotFoundException。 好吧,它可能不在正确的地方。 因此,我将文件放在Eclipse项目中的每个可能的文件夹中,并尝试从这些位置加载。 没运气。 确保文件名正确,没有运气。 使用eclipse提供的完全限定名称:“/pleasehelp / src / com / imlosingit / iwastedahalfhouronthis.ser”。 没运气。 将文件对象传递给FileInputStream。 没运气。 这在Java上非常容易。 这里发生了什么? ———–编辑解决方案——————– Data data = null; //object to be deserialized InputStream is = null; ObjectInputStream ois=null; AssetManager assets […]

使用java或xslt基于xml的内容拆分xml

我有一个要求,考虑下面的xml数据Input1.xml ABCDEFGHIJKLMN RESPONSEDATA OPQRSTUVWXYZ NEXTDATA ALPHABETS SOMEDATA 现在我想要3个输出xmls,响应如文件名所示,前面6个字符的ABCDEFGHIJKLMN作为输出文件名,如下图所示 (FILE1)->ABCDEF.XML RESPONSEDATA (FILE2)->OPQRST.XML NEXTDATA (FILE3)->ALPHAB.XML SOMEDATA