我有一个counter.txt在我的Android项目的assets文件夹中命名的文件.在运行时,我想覆盖文件的内容.但它并没有反映出来.我该如何解决这个问题?
我使用了以下代码.
String FILENAME = "counter.txt";
String string = "hello world!";
FileOutputStream fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
fos.write(string.getBytes());
fos.close();
Run Code Online (Sandbox Code Playgroud) private void changePicture(int stageIndex){
try{
iv=(ImageView) findViewById(R.id.imageView2);
Picture picture=new Picture();
String v =picture.getPicFileName();
InputStream ims = getAssets().open(v);
Drawable d = Drawable.createFromStream(ims, null);
iv.setImageDrawable(d);
}catch(IOException ex){
return;
}
}
Run Code Online (Sandbox Code Playgroud)
我想从/asset文件夹中加载图像列表,所以我编写了此函数,但是它不起作用。有人能帮我吗?
我正在按照本教程在我的Android应用程序中使用自定义字体:
该教程说要在app文件夹下创建一个assets文件夹但是当我尝试这样做时,我收到以下错误:"错误无法创建文件,已经存在"
代码优先:
AssetManager mgr = DeviceListActivity.this.getApplicationContext().getAssets();
try {
Log.e("Glenn:", address);
FileOutputStream fout = mgr.openFd("device/device_address.txt").createOutputStream();
PrintWriter _fout = new PrintWriter(fout);
_fout.println(address);
Log.e("Glenn", address);
_fout.close();
fout.close();
InputStream fin = mgr.open("device/device_address.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(fin));
address = br.readLine();
try {
Log.e("Glenn:", address);
} catch (NullPointerException e) {
e.printStackTrace();
}
} catch (IOException e) {
e.printStackTrace();
Log.e("Glenn", "error with OutputStream");
}
Run Code Online (Sandbox Code Playgroud)
前两次Log.e()调用打印的地址值是正确的值,实际上是设备MAC地址.但是,当我试图测试从刚刚写入的文件中读取的地址值时,NullPointerException已经在Log.e()调用中捕获了.这意味着从文件中读取的值是NULL.任何人都可以指出代码有什么问题吗?
android inputstream fileoutputstream bufferedreader android-assets
我曾使用此代码打开文件
Context context = ...;
AssetManager assManager = context.getAssets();
InputStream is = assManager.open("test.crt");
Run Code Online (Sandbox Code Playgroud)
但我想使用该文件写入文件输入流
InputStream caInput = new BufferedInputStream(new FileInputStream("test.crt"));
Run Code Online (Sandbox Code Playgroud)
感谢任何帮助
我的资产文件夹中有一些媒体文件。我想从我的资产文件夹中获取所有媒体文件名和文件数。
我正在尝试在我的应用程序中使用自定义字体,但在运行应用程序时我遇到了异常:
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setTypeface(android.graphics.Typeface)' on a null object reference
Run Code Online (Sandbox Code Playgroud)
我有一个工作字体,它在正确的路径,这是我的代码:
private TextView tv;
private Typeface tf;
tv = (TextView) findViewById(R.id.wlcText);
tf = Typeface.createFromAsset(getAssets(), "en_font.ttf");
tv.setTypeface(tf);
Run Code Online (Sandbox Code Playgroud)
这是我的XML:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/mainView"
android:background="@color/semi_transparent_black"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="@dimen/activity_vertical_margin">
<TextView
android:id="@+id/wlcText"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:text="Test"
android:textSize="25sp" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我是Android开发的新手,我正在尝试使用SDK从命令行管理项目,因为我无法使Android Studio 1.2在我的系统中正常工作(它没有响应).
问题:我创建了一个新项目但缺少资产文件夹.
其他SO答案(在此处输入链接描述)通过从IDE创建文件夹或通过指向.iml文件中的资产文件夹解决此问题,但在我的情况下不起作用(我尝试从命令管理项目)线完全)
还有一个编辑build.gradle的解决方案,但是从命令行创建的项目(使用SDK)似乎不是一个gradle项目.
任何帮助,将不胜感激.
只是想知道这里什么是最佳的,因为NDK 文档中没有提出任何建议。我相当确定,虽然bufSize是 type size_t,但指定SIZE_MAX可能不是一个明智的选择!