标签: java-io

isDirectory()为文件返回true

在我的java程序中,我复制一个文件并删除新文件.

在我的方法中,removeFile()我检查它是否是一个目录:

String fileName = "G:/1310628353186Examples.csv";
File f = new File(fileName);
if (f.isDirectory()) {
    System.out.println( "'" + fileName + "' is a directory" );
    String[] files = f.list();
    if (files != null && files.length > 0)
        throw new IllegalArgumentException("Delete: directory not empty: " + fileName);
}
Run Code Online (Sandbox Code Playgroud)

有时我会得到"'G:/1310628353186Examples.csv' is a directory",有时我不会.

当我调试的代码,f.isDirectory()true和我检查是什么f.isDirectory,调试器说,这是false.

我在Windows 7 Professional上运行Eclipse SDK 3.4.0和JDK 1.6.

java directory file java-io

2
推荐指数
1
解决办法
6641
查看次数

更新文件中的现有字符串

我必须编辑名为root.propertis的现有文件并更新它而不保存到另一个文件

以下是样本proprety文件.

root.label.getmore=Mehr Apps
root.msg.apps=Apps 
root.label.2.2=Coupons
root.label.35.2=MSNBC
root.label.43.2=PBS Kids
root.label.47.2=Yahoo! Digest
Run Code Online (Sandbox Code Playgroud)

我必须更新文件中的字符串 "root.label.43.2=PBS Kids" to "root.label.43.2=Updated"

但我需要通过repalcing串在同一个文件(root.propertis)保存root.label.43.2=PBS Kids.没有需要更新另一个属性文件中的变化.

java io java-io

2
推荐指数
1
解决办法
847
查看次数

在List编程中将List作为输入

我希望收到一个List作为输入,Java显示我没有错误:

List<String> A;
 ObjectOutputStream ins = new ObjectOutputStream(soc.getOutputStream());
  ins.writeObject(A);
Run Code Online (Sandbox Code Playgroud)

上面的代码执行没有错误,但是这不会:

List<String> ls;
    ObjectInputStream in = new ObjectInputStream(soc.getInputStream());
       in.readObject(ls);
Run Code Online (Sandbox Code Playgroud)

如果我可以发送List <>,为什么我不能接受它?输出代码的任何原因和建议?

java sockets java-io

2
推荐指数
1
解决办法
85
查看次数

读取文本文件并将内容转储到JTextArea的最有效方法

我很好奇最有效的方法是读取文本文件(不要担心大小,它相当小,所以java.io很好),然后将其内容转储到JTextArea显示器中.

例如,我可以以某种方式使用单个字符串中的整个文件,然后使用JTextArea.setText它来显示它,或者我应该逐行读取或字节数组并将它们填充到StringBuffer中,然后将文本区域设置为?

谢谢

java swing jtextarea jtextcomponent java-io

2
推荐指数
1
解决办法
2168
查看次数

说一个方法读取一个数据字节是什么意思?

我正在通过oracle API java.io.RandomAccessFile上课.

在类中有一个名为read()的方法,它从传递给构造函数的文件中读取数据的字节:

public int read()抛出IOException

从该文件中读取一个字节的数据.该字节以0到255(0x00-0x0ff)范围内的整数形式返回.如果尚未提供输入,此方法将阻止.

尽管RandomAccessFile不是InputStream的子类,但此方法的行为方式与InputStream的InputStream.read()方法完全相同.

返回:数据的下一个字节,如果已到达文件末尾,则返回-1.抛出:IOException - 如果发生I/O错误.如果已达到文件结尾,则不会抛出.

我很困惑,这是否意味着它从传递给构造函数的文件中读取8位数据并将读取的内容转换为int.

有什么建议?

java api byte java-io

2
推荐指数
1
解决办法
575
查看次数

FileWriter写入文件

我如何使用FileWriter实际写入文件,然后在记事本上打开它,看看我写了什么?这是我到目前为止所尝试的:

package Experimental;

import java.io.*;

public class IO {

    public static void main (String args[]) {

       File f = new File("testFile.txt");

       //Outputting into a file
       try {

          PrintWriter filePrint = new PrintWriter(
             new BufferedWriter(new FileWriter(f,true))
          );
          filePrint.println("testing, testing, printing into a file (apparently)");
       } catch (IOException e) {
          System.out.println(e.getMessage());
       }
   }
}
Run Code Online (Sandbox Code Playgroud)

java filewriter java-io

2
推荐指数
1
解决办法
139
查看次数

无法使用Java删除文件夹

我试图删除只有文件但没有子文件夹但没有成功的文件夹.

码:

File rowFolder = new File(folderPath);
String[] files = rowFolder.list();
for (String file : files){
    File deleteFile = new File(file);
    System.out.println("deleting file -"+deleteFile.getName());
    deleteFile.delete();
}
System.out.println("deleting folder -"+rowFolder.getName());
rowFolder.delete();
Run Code Online (Sandbox Code Playgroud)

输出:

deleting file -testing.pdf
deleting file -app_json.json
deleting file -photo.jpg
deleting folder -bundle_folder
Run Code Online (Sandbox Code Playgroud)

代码不会删除任何文件夹或任何文件.这是为什么?

java file-io file java-io

2
推荐指数
1
解决办法
1万
查看次数

Scanner.hasNext上的无限循环,从文件中读取

我显然正面临无限循环while(input.hasNext()),如下面的代码所示

File file = new File("data.txt");
Scanner input = new Scanner(file);

int sum = 0;

while (input.hasNext()) {
    if (input.hasNextInt()) {
        sum += input.nextInt();
    }
}
System.out.println(sum);
Run Code Online (Sandbox Code Playgroud)

一些相关的问题解释了为什么如果输入流是System.in,它总是返回true ,但是我正在扫描File.

请让我知道我哪里出错了.

我正在尝试计算唯一整数值​​的总和(空格分隔的位置).

编辑:

经验教训, input.hasNext()不会将指针移动到下一行,因此扫描仪不会超过任何输入.正如在这个问题的答案以及这里所解释的那样.

java infinite-loop java.util.scanner java-io

2
推荐指数
1
解决办法
1259
查看次数

从内存而不是磁盘读取文件

我有一个Java包含大量XML文件(> 500)的项目.在运行时读取此文件会导致性能问题.

是否有一个选项可以将所有XML文件加载到RAM并从那里读取而不是磁盘?

我知道有像RamDisk这样的产品, 但这个是商业工具.

我可以使用任何现有的Java API /库将XML文件复制到主内存并从主内存中读取吗?

java xml caching java-io

2
推荐指数
1
解决办法
1502
查看次数

什么时候使用FileChannel读取()/ write()文件?

我正在阅读《用Java思考》一书该书解释了该java.nio.*软件包,并说NIO比使用传统IO流读取和写入文件要快。为什么?

我已经查看了以下信息:

  • IO流是面向字节的,传统IO处理单元是字节,而NIO处理单元是块(字节阵列),但是我认为传统IO也可以通过BufferedFile *直接处理块(字节阵列),而传统IO也具有直接方法处理字节数组

    private native int readBytes(byte b[], int off, int len) throws IOException;
    
    Run Code Online (Sandbox Code Playgroud)
  • IO正在阻止读取,NIO可以是非阻止,但是我发现文件NIO只能是非阻止,那么NIO没有优势。

  • 我认为使用NIO通常是使用NIO的其他优点,例如:

     transferTo()/transferFrom()
    
    Run Code Online (Sandbox Code Playgroud)

那么,什么时候应该使用NIO进行文件读写?为什么它比传统的IO更快?正确的使用方法是什么?我应该仅在读写文件时使用IO还是NIO吗?

java nio java-io

2
推荐指数
1
解决办法
294
查看次数