Tag: io

Java:读者和编码

Java的默认编码是ASCII 。 是? (见下面的编辑) 当文本文件以UTF-8编码时? 读者如何知道他必须使用UTF-8 ? 我谈到的读者是: FileReader 来自Socket的BufferedReader 来自System.in的Scanner … 编辑 它转变为我们的编码取决于操作系统,这意味着在每个操作系统上都不是这样: ‘a’== 97

在Java中,可以在关闭后重新打开System.in

我有一个multithreading控制台应用程序,可以从两个不同的来源获取输入。 一个是用户输入控制台,另一个是网络。 我使用BufferedReader.readline()来获取用户和块的输入,这很好,除非我在等待时收到网络输入。 在这种情况下,我需要通过取消readline()来取消阻止用户线程。 我认为取消的最好方法是关闭System.in并使readline()抛出exception。 在那之后,虽然我需要重新打开它。 那可能吗?

将网站内容读入字符串

目前我正在开发一个可用于读取url指定的网站内容的类。 我刚刚开始使用java.io和java.net冒险,所以我需要咨询我的设计。 用法: TextURL url = new TextURL(urlString); String contents = url.read(); 我的代码: package pl.maciejziarko.util; import java.io.*; import java.net.*; public final class TextURL { private static final int BUFFER_SIZE = 1024 * 10; private static final int ZERO = 0; private final byte[] dataBuffer = new byte[BUFFER_SIZE]; private final URL urlObject; public TextURL(String urlString) throws […]

ObjectInputStream的(socket.getInputStream()); 不起作用

我正在编写一个类来与服务器进行通信,但是当它尝试在输入流的帮助下构造ObjectInputStream时程序正在冻结。 Theres没有exception,程序仍然在运行,但挂起在它试图构造ObjectInputstream的行中。 下面是我的问题所在方法的代码: @Override public void connect(String ip, int port) throws UnknownHostException, IOException { Socket socket = new Socket(ip, port); out = new ObjectOutputStream(socket.getOutputStream()); InputStream is = socket.getInputStream(); in = new ObjectInputStream(is); } 这是整个class级的代码: package Client; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public […]

如何制作BufferedReader的副本?

我正在使用BufferedReader构造函数来创建现有BufferedReader的新副本。 BufferedReader buffReader = new BufferedReader(originalBuffReader); 新的buffReader工作正常,但是当我执行originalBuffReader.readLine()它给了我null 。 有没有其他方法我可以创建一个新的bufferReader而不影响我原来的BufferedReader 。 仅供参考:我将bufferReader作为我方法的输入; 而我无权访问该来源。

给定Java InputStream,如何确定流中的当前偏移量?

我想要一个通用的,可重用的getPosition()方法,它会告诉我从流的起始点读取的字节数。 理想情况下,我更喜欢使用它来处理所有的InputStream,因此当我从不同的源获取它们时,我不必包装它们中的每一个。 这样的野兽存在吗? 如果没有,任何人都可以推荐计数InputStream的现有实现吗?

在64位java中使用long而不是int会有好处

在64位VM中,使用long而不是int会在性能方面做得更好,因为java中的long是64位,因此在64位系统中拉动和处理64位字可能更快。 (我期待很多NO,但我正在寻找详细的解释)。 编辑 :我暗示“在64位系统中拉动和处理64位字可能比在32位字中拉32位字更快”因为我假设在64位系统中,拉32位数据需要你先得到64位位字然后屏蔽前32位。

替换文件中的字符串

我正在寻找一种方法来替换文件中的字符串而不将整个文件读入内存。 通常我会使用Reader and Writer,例如以下内容: public static void replace(String oldstring, String newstring, File in, File out) throws IOException { BufferedReader reader = new BufferedReader(new FileReader(in)); PrintWriter writer = new PrintWriter(new FileWriter(out)); String line = null; while ((line = reader.readLine()) != null) writer.println(line.replaceAll(oldstring,newstring)); // I’m aware of the potential for resource leaks here. Proper resource // handling […]

在Java中,新创建的文件的默认位置是什么?

在Java中,新创建的文件的默认位置是什么?

java中filewriter的flush和close函数之间的区别

我需要知道Java中flush和close函数之间的确切区别是什么? 并且在写入文件期间将数据转储到文件中? 请举一个例子