- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是代码:
package vu.co.kaiyin;
import java.io.FileOutputStream;
import java.io.RandomAccessFile;
import java.io.*;
/**
* Created by IDEA on 14/06/15.
*/
public class Test {
public static void truncateFromEnd(File filename, int n) throws Exception {
if(n < 0) {
throw new Exception("Can't truncate by a negative number");
}
try (RandomAccessFile raf = new RandomAccessFile(filename, "r")) {
long originalLength = raf.length();
long newLength = originalLength - (long) n;
if(newLength < 0) {
newLength = 0;
}
raf.setLength(newLength);
}
}
public static void truncateFromEnd(String filename, int n) throws Exception {
truncateFromEnd(new File(filename), n);
}
public static void main(String[] args) throws Exception {
FileOutputStream fo = new FileOutputStream("/tmp/bin.out");
byte[] data = new byte[] {1, 2, 3, 4, 5};
fo.write(data);
fo.close();
truncateFromEnd("/tmp/bin.out", 1);
}
}
这是错误:
/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/bin/java -Didea.launcher.port=7532 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA 14 CE.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/lib/ant-javafx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/lib/dt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/lib/javafx-mx.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/lib/jconsole.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/lib/sa-jdi.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/lib/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/deploy.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/javaws.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/jfxswt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/management-agent.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/plugin.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/ext/cldrdata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/ext/dnsns.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/ext/jfxrt.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/ext/localedata.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/ext/nashorn.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/ext/sunec.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/ext/sunjce_provider.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/ext/sunpkcs11.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/lib/ext/zipfs.jar:/Users/kaiyin/workspace/BedWorks/target/classes:/Applications/IntelliJ IDEA 14 CE.app/Contents/lib/junit-4.11.jar:/Applications/IntelliJ IDEA 14 CE.app/Contents/lib/hamcrest-core-1.3.jar:/Applications/IntelliJ IDEA 14 CE.app/Contents/lib/hamcrest-library-1.3.jar:/Users/kaiyin/.m2/repository/com/google/guava/guava/18.0/guava-18.0.jar:/Users/kaiyin/.m2/repository/commons-io/commons-io/1.3.2/commons-io-1.3.2.jar:/Applications/IntelliJ IDEA 14 CE.app/Contents/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain vu.co.kaiyin.Test
Picked up _JAVA_OPTIONS: -Xms256m -Xmx2g
Exception in thread "main" java.io.IOException: Invalid argument
at java.io.RandomAccessFile.setLength(Native Method)
at vu.co.kaiyin.Test.truncateFromEnd(Test.java:25)
at vu.co.kaiyin.Test.truncateFromEnd(Test.java:30)
at vu.co.kaiyin.Test.main(Test.java:38)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Process finished with exit code 1
我做错了什么吗?
最佳答案
您可能需要通过在构造函数中传递 rw
(读/写)来授予您的 RandomAccessFile
写入权限。
try (RandomAccessFile raf = new RandomAccessFile(filename, "rw"))
如果您要更改文件长度,那么您肯定是在写入它。
关于java - 调用 RandomAccessFile 实例的 setLength 方法时出现无效参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30990163/
我想编写一个附加到整数数组的过程,但 Delphi IDE 给我编译时错误“不兼容类型”。这是我的代码: procedure appendToIntegerArray(var intArr : arr
在 Delphi 中,可以创建该类型的数组 var Arr: array[2..N] of MyType; 这是一个由 N - 1 元素组成的数组,索引从 2 到 N。 如果我们声明一个动态数组
我正在尝试使用以下函数来设置动态数组的长度,该数组是 var 参数。当我尝试编译代码时只有一个错误: [dcc64 错误] lolcode.dpr(138): E2008 不兼容类型 function
当然,即使我也能做到...... var testarray : array of string; setlength(testarray, 5); 但是如果我想变得聪明并有一个过程来通过引用传递
这个问题可能会也可能不会解决我的问题 - 但我希望了解 Delphi/Windows 如何以可能导致此问题的方式运行。 我有一个使用 3rd 方组件来加载 Outlook .msg 文件的应用程序。
在某些情况下,我需要设置动态数组的大小,然后用零填充它。 类似于: procedure SetLengthAndZero(VAR X; NewSize: Integer); begin SetL
今天我偶然发现了一个导致我的数组损坏的问题。这是一个可重现的测试用例: unit Unit40; interface type TVertex = record X, Y: Double;
我一直在阅读 RandomAccessFile 并了解可以通过 setLength 将文件末尾截断为比文件短的长度。我试图将文件的“结尾”复制到新文件并截断开头。 例如:我想删除文件的前 1300
在 stringbuilder 中修剪到一定长度。 我应该使用什么? StringBuilder sb = new StringBuilder("203253/62331066
我有这个代码: [[self.receivedData objectForKey:[NSNumber numberWithInt:connection.tag]] setLength:0]; 重复三次
这个问题已经有答案了: Clear contents of a file in Java using RandomAccessFile (2 个回答) 已关闭 9 年前。 我正在尝试清除用 java
我正在发出异步请求,并且在 [responseData setLength:0]; 上收到 EXC_BAD_ACCESS 代码是: - (void)connection:(NSURLConnectio
我有以下代码来生成字符串的所有可能的子字符串: import java.util.*; public class PlayString { public static void main(St
我需要创建一个包含记录对象数组的类,但尝试使用 SetLength 会引发访问冲突错误。 考虑以下带有水果的树对象示例。 type TFruit = record color: string;
尝试创建请求与 URL 的连接。 NSMutableData 实例(responseData)也会随之被调用。当连接开始接收响应时,将在 NSMutableData 实例上调用 setLength:N
代码说明 procedure TForm1.FormCreate(Sender: TObject); var Str: string; PStr: PChar; begin Str :=
我正在尝试调整作为参数传递的某个类的数组的大小,例如 procedure Resize(MyArray: Array of TObject); begin SetLength(MyArray, 1
我正在比较这两种初始化动态数组的方法之间的性能: Arr := TArray.Create(1, 2, 3, 4, 5); 和 SetLength(Arr, 5); Arr[0] := 1; Arr[
这是代码: package vu.co.kaiyin; import java.io.FileOutputStream; import java.io.RandomAccessFile; import
我有一个动态数组myArr。当我们使用 SetLength 时,myArr 的内存中存储了什么?是“00”吗?还是未定义?在本例中, SetLength 为 myArr 分配 16 字节内存。 myA
我是一名优秀的程序员,十分优秀!