java随机访问文件参数
我试图按照下面的示例在这里找到它,以确定文件是否通过CRLF(空行)完成,但是当我将字符串传递给方法RandomAccessFile时,它表示文件未找到。问题是我无法将文件路径提供给它,但我将文件的内容作为字符串,因此我尝试使用file f=new file(myString)创建一个文件;然后将创建的文件传递给该方法,但它不起作用,并且它给了我相同的错误(未找到文件)(它将文件的第一行视为路径) 如何从包含我要检查文件内容的字符串创建一个被RandomAccessFile接受的文件,该文件是否由CRLF完成 希望我是清楚的java随机访问文件参数,java,randomaccessfile,Java,Randomaccessfile,我试图按照下面的示例在这里找到它,以确定文件是否通过CRLF(空行)完成,但是当我将字符串传递给方法RandomAccessFile时,它表示文件未找到。问题是我无法将文件路径提供给它,但我将文件的内容作为字符串,因此我尝试使用file f=new file(myString)创建一个文件;然后将创建的文件传递给该方法,但它不起作用,并且它给了我相同的错误(未找到文件)(它将文件的第一行视为路径) 如何从包含我要检查文件内容的字符串创建一个被RandomAccessFile接受的文件,该文件是否
public static boolean lastLineisCRLF(String filename) {
RandomAccessFile raf = null;
try {
raf = new RandomAccessFile(filename, "r");
long pos = raf.length() - 2;
if (pos < 0) return false; // too short
raf.seek(pos);
return raf.read() == '\r' && raf.read() == '\n';
} catch (IOException e) {
return false;
} finally {
if (raf != null) try {
raf.close();
} catch (IOException ignored) {
}
}
}
public静态布尔lastLineisCRLF(字符串文件名){
RandomAccessFile raf=null;
试一试{
raf=新的随机访问文件(文件名,“r”);
long pos=raf.length()-2;
if(pos<0)返回false;//太短
英国皇家空军搜索(pos);
返回raf.read();
}捕获(IOE异常){
返回false;
}最后{
如果(raf!=null),请尝试{
raf.close();
}捕获(忽略IOException){
}
}
}
如果文件内容已作为字符串存储在内存中,则无需再次将其写入文件以确定最后一行是否为空。只需将内容拆分为一个行尾字符,然后将最后一行的空白部分修剪掉,看看是否还有剩余内容:
String fileContent = "line1\nline2\nline3\nline4\n";
// -1 limit tells split to keep empty fields
String[] fileLines = fileContent.split("\n", -1);
String lastLine = fileLines[fileLines.length - 1];
boolean lastLineIsEmpty = false;
if(lastLine.trim().isEmpty())
{
lastLineIsEmpty = true;
}
//prints true, line4 followed by carriage return but
//no line 5
System.out.println("lastLineEmpty: " + lastLineIsEmpty);
文件是否存在?用户通过jsp选择文件。我将文件名和内容存储在字符串中。这意味着我有所选的文件名和内容。当它说找不到文件时,实际上是指找不到文件。可能你把文件路径传错了好主意!我试过了,我有两个错误方法fileLines(int)未定义;类型的方法isEmpty()未定义String@LaetitiaZgraja我的代码有问题,但我想现在已经修好了。检查最近的编辑。P.S文件的最后一部分没有空格。该文件由CRLF完成。此外,在Java 1.6中,isEmpty()被添加到字符串中。如果未使用1.6,则可以将isEmpty()替换为
lastLine.trim().length()==0
如果(lastLine.trim().isEmpty())给出错误,则类型字符串的方法isEmpty()未定义